java - 去除重复链表并发修改异常

标签 java

我有一个链表,其中每个元素都有键和值(ArrayList<dataStructure>)。我想合并具有相同键的元素。

    Iterator<CElem> oItr = linkedList.iterator();
    {
        while (oItr.hasNext())
        {
            CElem outer = oItr.next();              
            Iterator<CElem> iItr = linkedList.iterator();
            {
                while (iItr.hasNext())
                {
                    CElem inner = iItr.next();
                    if (outer.equals(inner))
                        continue;

                    if (outer.getKey().equals(inner.getKey()))
                    {
                        outer.getValues().addAll(inner.getValues());
                        iItr.remove();
                    }
                }
            }
        }
    }

虽然我正在使用迭代器删除方法来获取 java.util.ConcurrentModificationException .应该改变什么来摆脱这个。

最佳答案

你用你的一个迭代器删除元素,因此第二个迭代器不知道这个删除并且抛出 ConcurrentModificationException

顺便说一句:

你应该考虑使用 some multimap代替具有键值对的列表

关于java - 去除重复链表并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18214651/

相关文章:

java - 如何实现AsyncTask连接服务器并解析JSON

java - 使用 MediaProjection API 截取屏幕截图时的额外填充

java - 始终使用 utf8 编码进行编译

java - 如何创建自定义 Quartz 触发器?

java - Mockito 不使用 @PreAuthorize 和 Spring Boot 进行模拟

java - 在充满非静态变量的类中自动运行方法

java - 无法在 Windows 上启动方形空间开发服务器

java - 使用kubernetes将tomcat conf文件发送到容器

java - "PKIX path building failed"尽管 Verisign 证书有效

java - LWJGL Display.update() 太慢 - 驱动程序问题?