不要在 foreach 循环里进行元素的 remove/add 操作。
remove 元素使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (删除元素的条件) {
iterator.remove();
}
}
add操作 在循环外新建一个list
import com.google.common.collect.Lists;
private List<User> getUserList(List<User> userList) {
if (CollectionUtils.isEmpty(userList)) {
return userList;
}
List<User> result = Lists.newArrayList();
// List<User> result2 = new ArrayList<>();
for (User user : userList) {
User user2 = new User();
user2.setUserName(user.getUsername());
user2.setUserAge(user.getUserAge());
result.add(user2);
}
return result;
}