繁体   English   中英

比较Java中的TreeMap键和值

[英]compare TreeMap key and value in Java

我有两个像这样的TreeMap:treemapOne:

{AUF_1413716534902_74=[Aufgabe, Function 1],
AUF_1413755000138_37=[Aufgabe, Function 2], 
AUF_1414931037395_41=[Aufgabe, Function 5],
AUF_1415377008757_59=[Aufgabe, Function 4], 
AUF_1415782696600_1801=[Aufgabe, Function 3_Eltern], 
AUF_1424125084448_1869=[Aufgabe, FunctionAlone]}

和treemaptwo:

 {AUF_1415377008757_59=[AUF_1414931037395_41], 
AUF_1415782696600_1801=[AUF_1413755000138_37, AUF_1413716534902_74]}

我想从treemapone中获取不在treemaptwo元素(键或值)中的键,这意味着在这里AUF_1424125084448_1869。 我怎样才能做到这一点?

假设两个映射都是Map<String, List<String>>实例,则可以执行以下操作:

// init result set with keys from treemapOne
Set<String> remainingKeys = new HashSet<>(treemapOne.keySet());
// remove keys in treemapTwo
remainingKeys.removeAll(treemapTwo.keySet());
// remove values in treemapTwo
for (List<String> values : treemapTwo.valueSet()) {
    remainingKeys.removeAll(values);
}

您可以通过简单明了的方式进行操作:

for (String key : treemapOne.keys()) {
    if (!treemapTwo.containsKey(key)) {
        // key is in the first map but not the second, do something about that
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM