欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

List的remove方法

程序员文章站 2022-04-18 19:27:20
...

之前遇到过几次这个问题,今天特意查了下,深究了下原因,先贴代码:

    public static void main(String[] args) {
        List<Integer> intList = new ArrayList<>();
        intList.add(1);
        intList.add(3);
        intList.add(2);
        intList.add(5);
        intList.add(4);

        intList.remove(3);
        System.out.println(intList);
    }

首先我们都知道,list有两个remove方法:

remove(int i):删除指定下标位置的数据

remove(Object object):删除指定的对象

那么,上述代码究竟会优先使用哪个方法呢?

执行结果是:[1, 3, 2, 4]

仔细观察上面代码你会发现,其实intList中都是存储的Integer对象,而intList.remove(3)中3是int类型而不是Integer,所以会调用remove(int i);如果想要删除3这个元素呢,正确的写法应该是remove(new Integer(3))才对。