如何比较arraylist中的整数

时间:2013-09-03 14:36:36

标签: java comparison equals

我有这段代码:

    public static ArrayList type = new ArrayList<Integer>();

///////////some code//////////

    System.out.println(normalization.type.get(i));
    System.out.println(normalization.type.get(i) == "1");

它给我输出

1
false

我尝试过单引号和等号方法,但仍然不匹配。 任何想法??

4 个答案:

答案 0 :(得分:1)

Integer是一个Object,因此您必须使用equals方法。

此外,"1"是一个字符串,因此它不能等于整数1 您必须执行以下操作:

System.out.println(normalization.type.get(i).equals(new Integer(1)));

OR

System.out.println(normalization.type.get(i).equals(1));

答案 1 :(得分:0)

您正在将IntegerString进行比较

normalization.type.get(i) == "1"

"1"是一个字符串,类型中包含整数。

使用:

  normalization.type.get(i).equals(1)

答案 2 :(得分:0)

我想作为替代方案,您可以尝试使用Java 7中出现的Objects#equals(Object, Object)。如果索引true处的元素等于,则以下代码将打印i 1

System.out.println(Objects.equals(normalization.type.get(i), 1));

以下是该方法的实现:

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}

您的问题是,您尝试将IntegerString进行比较,false将始终返回{{1}}。

答案 3 :(得分:0)

您正在将整数与字符串进行比较。 (或char,当你使用单引号时)

尝试normalization.type.get(i)== 1