使用 == 运算符比较 ArrayList 中的两个元素

Compare two elements in an ArrayList using == operator

我想比较 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两种情况。 我不明白为什么我只从 -128 to 127 得到一个 Integertrue 和其他 Integer.

false

注意:我在 Whosebug 和 Google 中看到很多问题,但我找不到问题的答案

范围 -128 -> 127 中的值缓存在 Integer class 中。