我知道如果你比较一个装箱的原语Integer和一个常量,比如:
Integer a = 4;
if (a < 5)
A将自动被打开,比较将会起作用。
但是,当您比较两个带框的整数并希望比较相等或小于/大于时会发生什么?
Integer a = 4;
Integer b = 5;
if (a == b)
上面的代码是否会检查它们是否是同一个对象,或者在这种情况下它会自动开箱吗?
是什么:
Integer a = 4;
Integer b = 5;
if (a < b)
?
因为比较方法必须基于类型int (x==y)或类Integer (x= (y)),并使用正确的操作符:
public class Example {
public static void main(String[] args) {
int[] arr = {-32735, -32735, -32700, -32645, -32645, -32560, -32560};
for(int j=1; j<arr.length-1; j++)
if((arr[j-1] != arr[j]) && (arr[j] != arr[j+1]))
System.out.println("int>" + arr[j]);
Integer[] I_arr = {-32735, -32735, -32700, -32645, -32645, -32560, -32560};
for(int j=1; j<I_arr.length-1; j++)
if((!I_arr[j-1].equals(I_arr[j])) && (!I_arr[j].equals(I_arr[j+1])))
System.out.println("Interger>" + I_arr[j]);
}
}