1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java remove all_如何使用Java List等集合类的removeAll方法

java remove all_如何使用Java List等集合类的removeAll方法

时间:2020-11-24 23:25:56

相关推荐

java remove all_如何使用Java List等集合类的removeAll方法

展开全部

List等集合类的removeAll方法,API文档描述如下e69da5e6ba9062616964757a686964616f31333361303062:booleanremoveAll(Collection>c)

从列表中移除指定collection中包含的其所有元素(可选操作)。

用法案例如下:Listlist1=newArrayList();

list1.add("1");

list1.add("2");

list1.add("3");

list1.add("4");

list1.add("5");

list1.add("6");

Listlist2=newArrayList();

list2.add("2");

list2.add("4");

list2.add("6");

list2.add("8");

list1.removeAll(list2);//删除246

removeAll的方法实现在下面的类里面:

java.util.AbstractCollection

具体代码为:publicbooleanremoveAll(Collection>c){

booleanmodified=false;

Iterator>it=iterator();

while(it.hasNext()){

if(c.contains(it.next())){

it.remove();

modified=true;

}

}

returnmodified;

}

可以看到在调用removeAll方法时,实际上是循环调用了remove方法,remove方法具体代码如下:publicbooleanremove(Objecto){

Iteratorit=iterator();

if(o==null){

while(it.hasNext()){

if(it.next()==null){

it.remove();

returntrue;

}

}

}else{

while(it.hasNext()){

if(o.equals(it.next())){

it.remove();

returntrue;

}

}

}

returnfalse;

}

注意:remove方法中有一段关键的代码:if (o.equals(it.next())) ,在执行removeAll方法时是通过equals方法来判断集合元素是否相等的,如果集合的元素是对象,并且没有Override equals方法,可能会导致移除失败!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。