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))才对。