如何在我的代码中解决ConcurrentModificationException?

时间:2019-05-25 06:11:20

标签: java android

最近2个小时以来我一直在尝试解决此异常。.我得到了代码抛出异常的行..但没有找到解决方法..请帮助我 错误发生@ mUsers.add(用户); //在其他部分

pred

1 个答案:

答案 0 :(得分:1)

因为您正在编辑相同的ArrayList,所以您正在检索数据。因此,它导致在数据访问的同时进行修改的并发。

尝试编辑复制的数据:

ArrayList<User> tempList = mUsers;
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
    User user = snapshot.getValue(User.class);

    //displaying 1 user from chat
    for (String id : usersList) {
        if (user.getUserId().equals(id)) {
            if (mUsers.size() != 0) {
                for (User user1 : mUsers) {
                    if (!user.getUserId().equals(user1.getUserId())) {
                        tempList.add(user);
                    }
                }
            } else {
                tempList.add(user);
            }
        }
    }
}//end of for

//Copy temp list to main list.
mUsers.addAll(tempList);

userAdapter = new UserAdapter(getContext(), mUsers);
recyclerView.setAdapter(userAdapter);