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()
。如果有的话,可以使用staticInteger#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));
}