删除集合元素,相信一提,肯定就是调用集合中的remove()方法了!
下面看个例子:
public void operate(List list){
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
list.remove(str);
}
}
}
这样做可以删除元素吗?自己运行下试试!
答案一定是报错了!那么如何才可以删除正在循环的集合中的元素呢?
一个笨方法:
public void operate(List list){
List removeList= new ArrayList();
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
removeList.add(str);
}
}
list.removeAll(removeList);
}
一个聪明的方法:
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
it.remove();
}
}
你会用哪一个呢?
本文探讨了在Java中从集合中删除元素的两种方法,并对比了它们的优缺点。一种是通过创建临时列表来存储要删除的元素,之后再批量删除;另一种是利用迭代器的remove()方法直接移除元素。

5499

被折叠的 条评论
为什么被折叠?



