List的remove方法

博主深究了List中remove方法的调用问题。List有remove(int i)和remove(Object object)两个方法,代码执行时会根据参数类型选择调用。如intList中存Integer对象,intList.remove(3)因3是int类型会调用remove(int i),若要删3元素,需用remove(new Integer(3))。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值