我注意到奇怪的情况:
请考虑以下代码段:
List<Integer> list= new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(new Integer(1));
出:
[2, 3]
List<Integer> list= new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(1);
System.out.println(list);
出:
[1, 3]
在对前两个片段进行比较后,我认为在第一种情况下代码工作所以感谢整数池
但是以下片段让我放心:
List<Integer> list= new ArrayList<>();
list.add( new Integer(12345));
list.add(2);
list.add(3);
list.remove(new Integer(12345));
System.out.println(list);
出:
[2, 3]
请解释ArrayList用于检测对象或索引的规则?