小编JAN*_*JAN的帖子

如何一次又一次地使用相同的迭代器?

鉴于下一个代码:

//这是某个大方法的一部分//

        ArrayList<String> players = this.m_maze.getPlayers();

    // define the first node to be the human player , and pop him from the list 
    // the rest of the nodes are the computer side 

    Iterator<String> iterator = players.iterator();

    // human side 
    String humanPlayer = iterator.next();


    // controller - start a game between the players , at least two players are playing 
    while (this.m_rounds > 0)  
    {


        String[] choices = this.m_view.getChoiceFromUser();

        int usersChoice = Integer.parseInt(choices[0]);

        switch (usersChoice)
        {
            case 1:   // then …
Run Code Online (Sandbox Code Playgroud)

java iterator

3
推荐指数
1
解决办法
5123
查看次数

将两个排序的数组合并为第三个可以在O(n)中完成?

我正在尝试将排序的数组合并到第三个排序的数组中,但是我看不到有任何方法可以做到这一点O(n),只是在O(n*n).我错了吗?有没有办法做到这一点O(n)

编辑:

实际上问题有点不同:

我有2个排序的跳过列表,我想将它们合并到一个新的排序跳过列表中,而不更改输入(即两个跳过列表).

我在考虑:

  • 将列表放在两个数组中

  • 使用MergeSort合并两个数组(这需要O(n)运行时)

  • 从排序数组中构建一个新的跳过列表.... //我不确定它的运行时

有任何想法吗 ?

问候

arrays sorting algorithm merge

3
推荐指数
2
解决办法
9226
查看次数

如何使用Xpath检索XML树节点后的节点?

首先,我必须说我发现它Xpath是一个非常好的解析器,我认为将它与其他解析器进行比较时非常强大.

给出以下代码:

  DocumentBuilderFactory domFactory = 
  DocumentBuilderFactory.newInstance();
  domFactory.setNamespaceAware(true); 
  DocumentBuilder builder = domFactory.newDocumentBuilder();
  Document doc = builder.parse("input.xml");
  XPath xpath = XPathFactory.newInstance().newXPath();
Run Code Online (Sandbox Code Playgroud)

如果我想找到first第1轮和第1轮的节点,请点击此处:

<Game>
    <Round>
        <roundNumber>1</roundNumber>
        <Door>
            <doorName>abd11</doorName>
            <Value>
                <xVal1>0</xVal1>
                <xVal2>25</xVal2>
                <pVal>0.31</pVal>
            </Value>
            <Value>
                <xVal1>25</xVal1>
                <xVal2>50</xVal2>
                <pVal>0.04</pVal>
            </Value>
            <Value>
                <xVal1>50</xVal1>
                <xVal2>75</xVal2>
                <pVal>0.19</pVal>
            </Value>
            <Value>
                <xVal1>75</xVal1>
                <xVal2>100</xVal2>
                <pVal>0.46</pVal>
            </Value>
        </Door>
        <Door>
            <doorName>vvv1133</doorName>
            <Value>
                <xVal1>60</xVal1>
                <xVal2>62</xVal2>
                <pVal>1.0</pVal>
            </Value>
        </Door>
    </Round>
    <Round>
        <roundNumber>2</roundNumber>
        <Door>
            <doorName>eee</doorName>
            <Value>
                <xVal1>0</xVal1>
                <xVal2>-25</xVal2>
                <pVal>0.31</pVal>
            </Value>
            <Value>
                <xVal1>-25</xVal1>
                <xVal2>-50</xVal2>
                <pVal>0.04</pVal>
            </Value>
            <Value>
                <xVal1>-50</xVal1>
                <xVal2>-75</xVal2>
                <pVal>0.19</pVal>
            </Value>
            <Value>
                <xVal1>-75</xVal1> …
Run Code Online (Sandbox Code Playgroud)

java xml xpath xml-parsing

3
推荐指数
1
解决办法
2万
查看次数

使用operator <in C从文件重定向

bash在C中编写了一个模拟Linux命令的程序.它与键盘的输入完美配合,意思是:

  • application > file:将应用程序的stdout重定向到文件(将输出写入文件)
  • application < file:从文件重定向应用程序的stdin(从文件读取输入)
  • application >> file:将应用程序的stdout重定向到文件(将输出附加到文件)
  • app1 | app2:将app1的stdout重定向到app2的stdin
  • app &:表示应该在后台执行应用程序

当我从键盘输入命令时,所有这些工作都如上所述.

为了完成我的任务,我需要再添加一个元素,即从文件重定向.意思是,如果我的程序被调用bashSimulator,那么如果我这样做:

bashSimulator < fileWithCommands
Run Code Online (Sandbox Code Playgroud)

然后我的程序需要从中获取所有命令fileWithCommands 并执行它们.

我不知道如何从文件重定向.

c linux bash io-redirection

3
推荐指数
1
解决办法
1810
查看次数

如何在没有JFileChooser的Java Swing中打开文件

我正在使用Java Swing(GUI),我想在我的项目中添加一个按钮来打开文件.

我不喜欢JFileChooser它,因为它打开一个小窗口来浏览目录的文件.我可以使用其他东西而不是JFileChooser Java Swing吗?

我试过使用SWT的元素,但它不起作用,意思是使用按钮对象然后在里面使用它JFrame,但是失败了,所以我猜SWT和Swing不能混在一起?

下面是该示例的Java Swing与JFileChooser中 ,我寻找的东西像这样把我的JFrame.

Windows文件对话框

java file-io swing swt jfilechooser

3
推荐指数
1
解决办法
3814
查看次数

不使用pipe()获取两个文件描述符

我正在尝试理解命令pipe(2),例如:

int pipefd[2];
if (pipe(pipefd) == -1) {
    perror("pipe");
    exit(EXIT_FAILURE);
}
Run Code Online (Sandbox Code Playgroud)

我希望得到两个文件描述符shared memory,用于匿名管道(父子关系).

例如,这是父子进程之间的简单对话:

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <sys/wait.h>  
#include <unistd.h>    
#include <string.h>   
#define SHMSIZE 16
int main() {
   int shmid;
   char *shm;

   if(fork() == 0)   // child first

   {

      shmid = shmget(2009, SHMSIZE, 0);
      shm = shmat(shmid, 0, 0);
      char *s = (char *) shm;
      *s = '\0';
      int i;

      // child enters the input that would be stored in …
Run Code Online (Sandbox Code Playgroud)

c linux pipe shared-memory

3
推荐指数
1
解决办法
960
查看次数

如何计算抢先优先级调度中的平均等待时间

鉴于下表:

在此输入图像描述

我想计算抢先优先级调度的平均等待时间.

在上表中,数字越大(在优先级列中),优先级越高.

部分解决方案:

|p1|p3|p1|p2|p5|p4|
0  8  29 33 52 67 80
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

谢谢

scheduling process

3
推荐指数
1
解决办法
3万
查看次数

mmap是否与所有进程共享内存?

当我这样做:

myProgram.h
myProgram.c

    struct PipeShm
    {
    // all my fields
    // more 
    // ...

    };



    struct PipeShm myPipe = { /* initialization for all fields */ };
    struct PipeShm * sharedPipe = &myPipe;

void func()
{
 sharedPipe = mmap (NULL, sizeof * sharedPipe, PROT_READ | PROT_WRITE,MAP_SHARED | MAP_ANONYMOUS, -1, 0);

}
Run Code Online (Sandbox Code Playgroud)

当我mmap指针时sharedPipe,如果我main()myProgram代码中调用任何方法,那么所有进程是否会共享我与myPipestruct 共享的确切共享内存?

或者每个新创建的孩子都会拥有myPipe自己的新生儿?

问候

编辑:

这是在我阅读了评论和答案之后:现在进行了更改,并且仅在我分配之后才初始化段的值:

#include "my_pipe.h"

struct PipeShm * sharedPipe = NULL;



int shm_pipe_init()
{ …
Run Code Online (Sandbox Code Playgroud)

c linux operating-system mmap shared-memory

3
推荐指数
1
解决办法
5030
查看次数

对于循环形式:Java中的"for(A b:c)"

这是我第一次看到这种语法:

// class Node
public class Node { 

...
...

}

public class Otherclass { ... }

Otherclass graph = new Otherclass();

// getSuccessors is a method of Otherclass class 

Node currentNode ;

List<Node> successors = graph.getSuccessors(currentNode);

// weird for loop 

for (Node son : successors) { 

// do something 

}
Run Code Online (Sandbox Code Playgroud)

循环是什么?某种Matlab语法?

还有其他方法可以编写for循环吗?

问候

java foreach loops for-loop

3
推荐指数
2
解决办法
2万
查看次数

在Matlab中将一个矩阵复制到另一个矩阵中

如何在没有for循环的情况下将一个矩阵复制到另一个?它甚至可能吗?

这是一个使用循环执行的简短代码,如何在此处避免循环?

% middleImg , newImg are matrices 
[rows columns] = size(middleImg);
for i=1:rows
    for j=1:columns     
        newImg(i,j) = middleImg(i+1,j+1);
    end
end  
Run Code Online (Sandbox Code Playgroud)

matlab loops for-loop

3
推荐指数
1
解决办法
2万
查看次数