List集合存入int类型值1,remove(1)方法按下标还是按对象删除信息

ArrayList的Remove方法有两种传值方法删除集合中的元素

1. remove(下标)

2. remove(对象)

问题来了,如果集合中添加的值都是int类型,那么list.remove(1);删除的是下标1的还是值是1的?

        //添加值
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add("张三");

        list.remove(1);

答:是按下标删除

解析:

        因为所有存入集合中的基本数据类型,如 int,全部都会转化为包装类型, Integer 类型。然后再以Object类型存储,所以,通过 list.remove(1); 是按照下标删除而不是对象删除,如果想按照对象删除,同理对象为Integer即可,如:

list.remove(new Integer(1));

参考文章:集合如何存储基本数据类型_chen404897439的博客-CSDN博客_集合存储基本数据类型


版权声明:本文为NeiHan2020原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。