【发布时间】:2017-07-17 12:06:19
【问题描述】:
我正在尝试创建一种方法来比较两个 arraylist buttonresourceIds & buttonresourceIds2 。我想比较它们以了解它们是否共享按钮元素。然后返回他们共享的元素的“数量”。
ArrayList<String>> buttonresourceIds = new ArrayList<String>>();
ArrayList<String>> buttonresourceIds2 = new ArrayList<String>>();
for(int i=0;i<buttonresourceIds.size();i++){
for(int j=0;j<buttonresourceIds2.size();j++){
if(buttonresourceIds.contains(buttonresourceIds2.get(j))){
System.out.println("Exist : "+buttonresourceIds2.get(j));
}else{
System.out.println("Not Exist : "+buttonresourceIds2.get(j));
}
}
}
它给了我结果,但循环不断重复。我错过了什么吗?
【问题讨论】:
-
用
List::retainAll怎么样? -
这段代码没有任何作用。您的错误在其他地方。
-
既然你打电话给
buttonresourceIds.contains(buttonresourceIds2.get(j))那个带有i的外循环是干什么用的?这可能是您的问题:您正在检查列表 2 和列表 1 对于列表 1 中的每个元素。另请注意,您的代码无法按原样编译(例如,ArrayList<String>>无效)并且您之前发布的 hashmap 代码看起来也很奇怪。 -
@Tom 不,这不是重复的。 它给了我结果,但 循环不断重复。
-
@ChristopherSchneider 修复错误代码而不是首先使用正确方法的重点在哪里?这显然是一个骗局(因为这个问题告诉 OP 他/她想知道什么)。