本文主要介绍了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中的一个方法。
数组列表中出现重载。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。