gpt4 book ai didi

java - 想要比较两个 HashMap 并删除它们

转载 作者:行者123 更新时间:2023-12-01 17:09:29 39 4
gpt4 key购买 nike

我有两个初始化的 HashMap ,如下

FieldType 是一个 JAXB 对象。

Map<String, FieldType> onsDetailsMap    =   new LinkedHashMap<String, FieldType>();
Map<String, FieldType> uxDetailsMap = new LinkedHashMap<String, FieldType>();

我正在尝试比较两个 HashMap 的“键”。如果两个键相等,我需要获取“Key”并且它是 JAXB 对象,写入另一个 HashMap 并将其从实际 HashMap 中删除。

尝试使用 hashmap.remove(key) 删除它,但它抛出 java.util.ConcurrentModificationException

for (String key : onsDetailsMap.keySet()) {
if (uxDetailsMap.containsKey(key)) {

System.out.println("BOTH :: " +key);
onsDetailsMap.remove(key);

}else {

System.out.println("ONS only :: " +key);
}

最佳答案

您不能在 for 循环中迭代映射并同时删除该映射中的条目。试试这个

Iterator entries = onsDetailsMap.entrySet().iterator();
while (entries.hasNext()) {
Entry<String, FieldType> entry = (Entry) entries.next();
if (uxDetailsMap.containsKey(entry.getKey()) {
System.out.println("BOTH :: " + entry.getKey());
entries.remove();
}
}

关于java - 想要比较两个 HashMap 并删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304852/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com