TreeMap 中的子键和值与 Java 中的其他 TreeMap

subtitude keys and values in TreeMap with other TreeMap in Java

假设我有一个 TreeMap<String,List<String> first;TreeMap<String,String> Origin; 并且 first 中的每个键和每个值在 origin 中都有一个等效的键。如何用 Origin 的相关值替换 first 的键和值?例如

first {a = [b,c,d], e = [ f,g,h]}
origin {a=a1,b=b1,c=c1,d=d1,e = e1, g = g1, h=h1}

我需要得到这个 TreeMap DesiredMap {[a1 =b1,c1,d1],[e1 = f1,g1,h1]}

您必须遍历 first TreeMap 上的条目。

for(Map.Entry<String, List<String>> entry : first.entrySet()) {

对于每个 entry 抓住 oldKeyoldValues

String oldKey= entry.getKey();
List<String> oldValues= entry.getValue();

创建newKey

String newKey = origin.get(oldKey);           

然后遍历 oldValues 中的每个值 s 以从 origin 中获取新值,以创建 newValues

的列表
List<String> newValues = new ArrayList<>();
for(String s : oldValues) {
    newValues.add(origin.get(s));
}

现在您已经有了 newKeynewValues,将它们放入您的 result TreeMap。

result.put(newKey, newValues);

转到下一个 entry 并重复!