比较 Java 中的 TreeMap 键和值
compare TreeMap key and value in Java
我有两个像这样的 TreeMap:
树图一:
{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]}
和
树图二:
{AUF_1415377008757_59=[AUF_1414931037395_41],
AUF_1415782696600_1801=[AUF_1413755000138_37, AUF_1413716534902_74]}
我想从 treemapone 中获取不在 treemaptwo 的元素(键或值)中的键,这意味着这里 AUF_1424125084448_1869。我该怎么做?
你可以用简单明了的方式做到这一点:
for (String key : treemapOne.keys()) {
if (!treemapTwo.containsKey(key)) {
// key is in the first map but not the second, do something about that
}
}
假设两个地图都是 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);
}
我有两个像这样的 TreeMap: 树图一:
{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]}
和 树图二:
{AUF_1415377008757_59=[AUF_1414931037395_41],
AUF_1415782696600_1801=[AUF_1413755000138_37, AUF_1413716534902_74]}
我想从 treemapone 中获取不在 treemaptwo 的元素(键或值)中的键,这意味着这里 AUF_1424125084448_1869。我该怎么做?
你可以用简单明了的方式做到这一点:
for (String key : treemapOne.keys()) {
if (!treemapTwo.containsKey(key)) {
// key is in the first map but not the second, do something about that
}
}
假设两个地图都是 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);
}