使用Java中的其他TreeMap替换TreeMap中的键和值

时间:2015-03-12 18:01:26

标签: java treemap

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

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     期望地图{[a1 = b1,c1,d1],[e1 = f1,g1,h1]}

1 个答案:

答案 0 :(得分:2)

您必须遍历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);           

然后遍历s中的每个值oldValues以获取origin中的newValue,以便创建newValues的列表

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

现在您已将newKeynewValues放在result TreeMap中。

result.put(newKey, newValues);

转到下一个entry并重复!