深入剖析ArrayList的remove方法

深入剖析ArrayList的remove方法

本文主要介绍了ArrayList的remove方法的使用,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。/p

目录

ArrayList的remove方法按索引删除元素。使用equals方法比较和删除元素。ArrayList的remove方法的注意事项摘要

ArrayList的remove方法

remove方法用于从ArrayList中移除元素。这个方法有两个版本。

public E remove(int索引)

public boolean remove(对象o)

按索引删除元素

如果收到一个int值,这个值表示要删除的元素的索引值,方法返回的值就是被删除的元素。如果索引值超出实际范围,将引发IndexOutOfBoundsException异常。

list integer integers=new ArrayList(5);

integers . add(1);

integers . add(2);

integers . add(8);

integers . add(4);

integers . add(5);

system . out . println(integers . remove(2));

System.out.println(整数);

删除索引为2的元素(8),remove的返回值为8。

使用equals方法比较并删除元素

如果收到object类型的值,它将依次与列表中的每个元素进行比较(使用equals方法)。如果它存在,您将删除第一个遇到的元素并返回true。

list integer integers=new ArrayList(5);

integers . add(1);

integers . add(2);

integers . add(8);

integers . add(2);

integers . add(5);

system . out . println(integer . remove(integer . value of(2)));

System.out.println(整数);

system . out . println(integer . remove(integer . value of(3)));

System.out.println(整数);

可以看出,2转换为整数类型后,调用的remove方法与上面不同,删除2,返回true。

如果比较后没有这样的元素,则返回false。

所以对于保存了Integer类型的ArrayList,由于自动打包机制的存在,在添加元素时可以直接使用int类型的元素。但是在删除元素的时候,要注意。如果要查找要删除的特定元素,需要将int值转换为Integer,然后将其作为参数传递给remove元素。否则,传入的int值将被用作索引,从而导致删除错误的元素。

ArrayList remove方法的注意事项

废话少说,先看代码。

公共类列表删除{

公共静态void main(String[] args) {

system . out . println( test remove wrapped type and unwrapped type );

ArrayListInteger my list=new ArrayListInteger();

for(int k=0;k10;k ) {

my list . add((k 1)* 10);

}

system . out . println( my list: my list );

//remove(8)是删除下标为8的元素。

system . out . println(string . format( % s:% s my list:% s , remove(8),myList.remove(8),my list));

//将元素80更改为8

myList.set(myList.indexOf(80),8);

collections . shuffle(my list);

system . out . println( my list: my list );

//my list . remove(integer . value of(8))是删除元素8。

system . out . println(string . format( % s:% s my list:% s , remove(Integer.valueOf(8)),my list . remove(integer . value of(8)),my list));

}

}

输出:

测试移除包装类型和未包装类型。

我的列表:[10,20,30,40,50,60,70,80,90,100]

remove(8):90我的列表:[10,20,30,40,50,60,70,80,100]

我的列表:[20,50,40,60,100,10,30,70,8]

remove(integer . value of(8)):true my list:[20,50,40,60,100,10,30,70]

总结

如果ArrayList包含整数对象,则为。remove(8)删除下标为8的元素。remove(Integer.valueOf(8))是删除元素8。

看源代码发现,public E remove(int index)是ArrayList父类AbstractList的方法;public boolean remove(Object o)是AbstractList的父类AbstractCollection中的一个方法。

数组列表中出现重载。

以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

深入剖析ArrayList的remove方法