今天写个代码,提示java.util.ConcurrentModificationException
并发修改异常,但是我这个是不是并发的方法呀?
private List<Employee> removeList(List<Employee> employees) {
for (Employee employee : employees) {
if(employee.getName().length() <= 3){
employees.remove(employee);
}
}
return employees;
}
改成这样就好了。请问什么原因
private List<Employee> removeList(List<Employee> employees) {
employees.removeIf(employee -> employee.getName().length() <= 3);
return employees;
}
或者修改成这样
private List<Employee> removeList(List<Employee> employees) {
List <Employee> list = new ArrayList<>();
for (Employee employee : employees) {
if(employee.getName().length() > 3){
list.add(employee);
}
}
return list;
}
ps:第一种修改的方法不太明白