我有两个Arraylist RunningProcessList AllProcessList其包含以下值是

 RunningProcessList:
    Receiver.jar



 AllProcessList:
    Receiver.jar
    Sender.jar
    Timeout.jar
    TimeourServer.jar


AllProcessList arraylist包含所有Java进程,RunningProcessList arraylist包含当前正在运行的进程。我想比较这两个arraylist并显示是否未运行该进程。例如,比较两个列表并要显示以下进程未运行。

 Result:
    Sender.jar
    Timeout.jar
    TimeourServer.jar


我使用了以下代码,但无法正常工作。

Object Result = null;
for (int i = 0; i <AllProcessList.size(); i++) {
   for (int j = 0; j < RunningProcessList.size(); j++) {
       if( AllProcessList.get(i) != ( RunningProcessList.get(j))) {
           System.out.println(  RunningProcessList.get(j)));
           Result =RunningProcessList.get(j);
       }
       if(AllProcessList.get(i) != ( RunningProcessList.get(j))) {
           list3.add(Result);
       }
    }
}

最佳答案

查看List的文档,尤其是removeAll()方法。

List result = new ArrayList(AllProcessList);
result.removeAll(RunningProcessList);


然后,您可以遍历该列表,并根据需要调用System.out.println,就像您在上面所做的那样……但这就是您想要的吗?

10-06 04:53