有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中树映射键和值的比较

我有两个这样的树形图: 密螺旋体:

{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。我该怎么做


共 (2) 个答案

  1. # 1 楼答案

    您可以通过简单明了的方式完成:

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

    假设两个映射都是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);
    }