我想知道是否有一种方法可以连续比较2个ArrayList,直到它们的大小相同或它们的元素相同。第一个ArrayList将具有一组固定的元素(比方说5个元素)。第二个ArrayList将为空,并且在每次用户交互时,一个元素将被添加到第二个ArrayList。当第二个ArrayList的大小与第一个ArrayList的大小相同时,将进行比较以查看两个arrayLists是否相同。
我已经通过多种方式做到这一点:
我使用嵌套循环比较存储和播放的项目
public int compare(ImageView computer, ImageView player){
if(player == computer)
return 1;
else
return 2;
}
public void checkMatch(){
for(int x = 0; x < storedList.size(); x++){
for(int y = 0; y < playedList.size(); y++){
result = compare(storedList.get(x), playedList.get(y));
if(result == 1)
//Do stuff
else
//End round
}
}
}
然后我只是尝试明确地这样做
if(playedList == storedList)
//do stuff
else
//do stuff
所有这些可能都有效,但是我不知道在哪里调用该代码,以使代码实际上等待所有用户输入完全完成。在此先感谢您的帮助。
最佳答案
只需对您的代码进行一些注释:
if(playedList == storedList)
不会做你所期望的。 ==仅在引用相同时才为true,在对象相等时则为true。您应该改用
if(storedList.equals(playedList))
。我不确定您是否需要首先检查大小(无论如何,该检查都是通过equals方法完成的),而没有代码会更干净。
关于java - 连续比较2个ArrayList的大小和元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30161572/