我想比较一个ArrayList == operator
中的两个元素,我写这段代码:
ArrayList<Integer> myArray=new ArrayList<>();
myArray.add(-128);
myArray.add(-128);
System.out.println(myArray.get(0)==myArray.get(1));
我得到true
作为结果,但其他值如:
myArray.add(2000);
myArray.add(2000);
System.out.println(myArray.get(0)==myArray.get(1));
我得到了false
。
我知道== operator
比较引用,而不是值,在这种情况下,两个整数有不同的引用,所以逻辑上我们必须false
两种情况。
我不明白为什么我只true
Integer
来自-128 to 127
而false
来自其他Integer
。
注意:我在Stackoverflow和Google中看到很多问题,但我无法找到问题的答案
答案 0 :(得分:0)
范围-128 -> 127
中的值缓存在Integer
类中。