Android使用ArrayLists时报错:java.util.ConcurrentModificationException
报错原因是同一个集合被多个线程编辑了。导致集合元素丢失
解决方法——
1、改有CopyOnWriteArrayList
private List<MqttMsgBean> mqttMsgList = new CopyOnWriteArrayList<>();
2、 remove 改用 removeAll
if (!mqttMsgList.isEmpty()) {
List<MqttMsgBean> mqttMsgList2 = new ArrayList<>();
for (MqttMsgBean item : mqttMsgList) {
if (channel == item.param.number) {
mqttMsgList2.add(item);
}
}
mqttMsgList.removeAll(mqttMsgList2);
}
本文探讨了在Android开发中使用ArrayList时遇到的java.util.ConcurrentModificationException错误,详细解释了错误原因并提供了两种解决方案:使用CopyOnWriteArrayList替代ArrayList以及采用removeAll方法代替直接remove操作。
639

被折叠的 条评论
为什么被折叠?



