当前位置:  开发笔记 > 编程语言 > 正文

如何比较数组中的值?

如何解决《如何比较数组中的值?》经验,为你挑选了1个好方法。

如何比较数组中的值?

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

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

if ((list.get(0)==list.get(2) && list.get(1)==list.get(3)) 
{
   System.out.println("equal")
}

Jon Skeet.. 8

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

if (list[0] == list[2] && list[1] == list[3])

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

if (list[0].equals(list[2])) && list[1].equals(list[3]))

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

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

然后:

if (objectsEqual(list[0], list[2]) && objectsEqual(list[1], list[3]))

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



1> Jon Skeet..:

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

if (list[0] == list[2] && list[1] == list[3])

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

if (list[0].equals(list[2])) && list[1].equals(list[3]))

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

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

然后:

if (objectsEqual(list[0], list[2]) && objectsEqual(list[1], list[3]))

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

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有