Java List的remove()方法,参数为数字时,需要注意

当我们想删除Java List对象中的某一个的时候,可以选择根据索引删除,也可以根据对象删除,调用的方法都是remove。

但是当我们对一个List<Integer>对象删除某个元素的,remove(i) 是删除索引为i的元素,还是删除值为i的元素。

class Solution {
    public static void main(String[] args) {
        List<Integer> ls = new ArrayList<>();
        ls.add(1);
        ls.add(2);
        ls.add(3);
        ls.add(4);
        System.out.println(ls);
        ls.remove(1);
        System.out.println(ls);
        ls.remove(Integer.valueOf(4));
        System.out.println(ls);
    }
}

/*结果
[1, 2, 3, 4]
[1, 3, 4]
[1, 3]
*/

可以看出当直接传入一个int值时,它是默认删除索引对应的元素。如果是传入一个Integer对象的时候,他是删除那个值的元素。

因为List中保存的是Integer类型的值,int类型找不到,所以认为是索引。

幸好List<T> T不能为基本类型,不然就乱套了。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值