0

我可以是一个聊天应用程序的实现,只向用户显示聊天可以让 user_id 被发送或接收一条消息以存储在用户列表中,并选择要添加到列表中的用户一些错误,如添加用户时的用户列表1并添加用户2时和用户1再次出现ArrayList中的异常在此处输入图像描述

 for (String id : usersList)
                    if (equal(user.getId(), id)) {
                        if (mUseres.size() != 0) {
                            for (User user1 : mUseres) {
                                if (!equal(user.getId(), user1.getId())) {
                                    mUseres.add(user);
                                }
                            }
                        } else {
                            mUseres.add(user);
                        }
4

2 回答 2

1

问题在这里:

   for (User user1 : mUseres) {
       if (!equal(user.getId(), user1.getId())) {
       mUseres.add(user);
    }

您正在迭代mUseresfor....),同时您正在添加新项目(mUseres.add

于 2019-08-21T13:29:54.267 回答
0

您不能在迭代列表时修改它。

文档

请注意,此异常并不总是表明对象已被不同的线程同时修改。如果单个线程发出一系列违反对象约定的方法调用,则该对象可能会抛出此异常。例如,如果线程在使用快速失败迭代器迭代集合时直接修改集合,则迭代器将抛出此异常

于 2019-08-21T13:45:25.020 回答