如何比较数组中的值?

Jes*_*ssy 0 java arrays

如何比较数组中的值?

我有数组命名列表,其中包含12个元素.我看到索引0中的值是否等于索引2中的值.

我试过这个代码,但似乎没有用.

if ((list.get(0)==list.get(2) && list.get(1)==list.get(3)) 
{
   System.out.println("equal")
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

如果它真的是一个数组,你想要:

if (list[0] == list[2] && list[1] == list[3])
Run Code Online (Sandbox Code Playgroud)

请注意,如果数组是引用类型,那么通过引用标识进行比较而不是相等.你可能想要:

if (list[0].equals(list[2])) && list[1].equals(list[3]))
Run Code Online (Sandbox Code Playgroud)

虽然如果任何值为null,那么它将会爆炸.您可能需要一个帮助方法来处理这个问题:

public static objectsEqual(Object o1, Object o2)
{
    if (o1 == o2)
    {
        return true;
    }
    if (o1 == null || o2 == null)
    {
        return false;
    }
    return o1.equals(o2);
}
Run Code Online (Sandbox Code Playgroud)

然后:

if (objectsEqual(list[0], list[2]) && objectsEqual(list[1], list[3]))
Run Code Online (Sandbox Code Playgroud)

如果你真的有一个ArrayList而不是一个数组,那么以上所有内容仍然存在,只需使用list.get(x)而不是list[x]在每个地方.