我想知道是否有一种方法可以连续比较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/

10-10 01:46