Java 如何比较arraylist中的整数

Java 如何比较arraylist中的整数,java,comparison,equals,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"); 我尝试过单引号和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");
我尝试过单引号和equals方法,但仍然不匹配。
有什么想法吗???

您正在将
整数
字符串

normalization.type.get(i) == "1"
“1”
是一个字符串,类型中包含整数

使用:


整数是一个对象,因此必须使用
equals
方法

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

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


我想作为一种选择,您可以尝试使用Java7中出现的
对象#equals(Object,Object)
。如果索引
i
处的元素等于
1
,则以下代码将打印
true

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

您的问题是,您试图将
整数
字符串
进行比较,而
字符串将始终返回
false

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


尝试正常化。键入。获取(i)==1

使用
equals
而不是
=
。当然不能使用
“1”
。并删除双引号。它是一个整数值,不是字符串。几乎没有理由使用
newinteger()
。如果有的话,可以使用static
Integer#valueOf()
factory方法。我确信后者会转化为前者。
System.out.println(normalization.type.get(i).equals(new Integer(1)));
System.out.println(normalization.type.get(i).equals(1));
public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}