0

我有这段代码:

    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

4 回答 4

1

整数是一个对象,所以你必须使用equals方法。

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

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

或者

System.out.println(normalization.type.get(i).equals(1));
于 2013-09-03T14:39:04.343 回答
0

Integer你正在比较String

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

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

利用:

  normalization.type.get(i).equals(1)
于 2013-09-03T14:37:51.373 回答
0

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

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

于 2013-09-03T14:43:19.810 回答
0

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

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));
}

您的问题是您试图将 a与始终返回Integer的 a进行比较。Stringfalse

于 2013-09-03T14:42:03.113 回答