列表<integer>在删除期间混淆索引或对象</integer>

时间:2014-03-30 21:32:11

标签: java collections

我注意到奇怪的情况:

请考虑以下代码段:

1

    List<Integer> list= new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.remove(new Integer(1));

出:

[2, 3]

2

    List<Integer> list= new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.remove(1);
    System.out.println(list);

出:

[1, 3]

在对前两个片段进行比较后,我认为在第一种情况下代码工作所以感谢整数池

但是以下片段让我放心:

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用于检测对象或索引的规则?

0 个答案:

没有答案