1、iterator迭代过程中删除
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String value = iterator.next();
if("3".equals(value)){
iterator.remove();
}
}
System.out.println(list);
2、removeIf删除
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.removeIf(item -> "3".equals(item));
System.out.println(list);
3、java8 lambda filter过滤删除
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
List<String> newList = list.stream().filter(item -> !"3".equals(item)).collect(Collectors.toList());
System.out.println(newList);
4、CopyOnWriteArrayList删除(性能低不推荐使用)
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
CopyOnWriteArrayList<String> objects = new CopyOnWriteArrayList<>(list);
for (String object : objects) {
if("3".equals(object)){
objects.remove(object);
}
}
System.out.println(objects);