使用 == 运算符比较 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
得到一个 Integer
的 true
和其他 Integer
.
的 false
注意:我在 Whosebug 和 Google 中看到很多问题,但我找不到问题的答案
范围 -128 -> 127
中的值缓存在 Integer
class 中。
我想比较 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
得到一个 Integer
的 true
和其他 Integer
.
false
注意:我在 Whosebug 和 Google 中看到很多问题,但我找不到问题的答案
范围 -128 -> 127
中的值缓存在 Integer
class 中。