Java 获取“;ConcurrentModificationException”;即使我使用迭代器?

Java 获取“;ConcurrentModificationException”;即使我使用迭代器?,java,iterator,Java,Iterator,我得到了ConcurrentModificationException,但我真的不明白为什么。。当我使用迭代器时,它不应该正常工作吗 public void nextDay(){ int range = (10 - 0) + 1; ListIterator<User> it = this.socialNetwork.getPeopleInNetwork().listIterator(); while(it.hasNext())

我得到了ConcurrentModificationException,但我真的不明白为什么。。当我使用迭代器时,它不应该正常工作吗

public void nextDay(){
        int range = (10 - 0) + 1; 
        ListIterator<User> it = this.socialNetwork.getPeopleInNetwork().listIterator();    
        while(it.hasNext()) {

            User user = it.next();   
            int random = (int)(Math.random() * range) + 0;
            if(user.getFriends().size()<=25){
                try {

                    this.socialNetwork.getPeopleInNetwork().add(user.addFriend(new UserImpl("new","user")));
                    user.addFriend(this.socialNetwork.getPeopleInNetwork().get(random));
                } catch (IllegalArgumentException | UserAlreadyInFriendListException e) {
                    logger.error(e.getMessage());
                }
            }else{
                try {
                    this.socialNetwork.getPeopleInNetwork().add(user.addFriend(new UserImpl("new","user")));
                    this.socialNetwork.getPeopleInNetwork().add(user.addFriend(new UserImpl("new","user")));
                    this.socialNetwork.getPeopleInNetwork().add(user.addFriend(new UserImpl("new","user")));
                    user.addFriend(this.socialNetwork.getPeopleInNetwork().get(random));
                } catch (IllegalArgumentException | UserAlreadyInFriendListException e) {
                    logger.error(e.getMessage());
                }

            }
        }
    }
public void nextDay(){
整数范围=(10-0)+1;
ListIterator it=this.socialNetwork.getPeopleInNetwork().ListIterator();
while(it.hasNext()){
User=it.next();
int random=(int)(Math.random()*范围)+0;

如果(user.getFriends().size()否,则在迭代列表时无法修改列表,除非使用迭代器本身进行修改

如果计划在不使用迭代器的情况下修改原始列表,则应创建副本并迭代副本

否则,可以使用迭代器修改列表

查看
ListIterator
add
方法:

re
“…即使我在使用迭代器…”
--循环中也有这样一个问题:
this.socialNetwork.getPeopleInNetwork().add(…)
当您在不使用迭代器的情况下修改列表时,迭代器不会保护您免受并发修改。这应该是常识,不是?