List元素类型为Integer时,执行remove(obj),需区分obj是int还是Integer

话不多说,直接上代码:

import java.util.ArrayList;
import java.util.List;

public class RemoveTest {

    public static void main(String[] args) {

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

        //remove(Integer a)
        Integer a = 2;
        firstList.remove(a);
        System.out.println("remove Integer 2, result is: " + firstList);

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

        //remove(int b)
        int b = 2;
        secondList.remove(b);
        System.out.println("remove int 2, result is: " + secondList);

    }

}

运行结果:

remove Integer 2, result is: [1, 3]
remove int 2, result is: [1, 2]

原因是两个方法的背后实现各不相同:

1>当入参数据类型为Integer时,执行的是删除某具体元素的方法;

boolean remove(Object o);

2>当入参数据类型为int时,执行的是依据下标删除元素的方法。

E remove(int index);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值