一、问题描述
如何删除 List 中的某个元素
二、解决
在删除list集合中的元素的时,
不应该使用普通的循环遍历再list.remove()的方式进行删除。(报异常java.util.ConcurrentModificationException)
应该使用迭代器的方式进行元素的删除。
(1)迭代器的方式 删除
/**
* 删除list中的指定元素
* @param obj 需要删除的元素
* @param list 原list
* @return 经过删除后的新list
*/
public static List delete(Object obj, List list) {
Iterator it = list.iterator();
while (it.hasNext()){
if (it.next()== obj){
it.remove();
}
}
return list;
}
(2)测试一下
public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.add("张飞");
list.add("刘备");
list.add("关羽");
System.out.println(list);
delete("刘备", list);
System.out.println(list);
}
(3)运行结果