这个Java方法在做什么?

时间:2015-02-22 05:10:32

标签: java dictionary methods keyset

public Map mystery(Map map1, Map map2) {
Map result = new TreeMap();
for (String s1 : map1.keySet()) {
    if (map2.containsKey(map1.get(s1))) {
        result.put(s1, map2.get(map1.get(s1)));
    }
}
return result;
}

map1 = {bar = 1,baz = 2,foo = 3,mumble = 4}; map2 = {1 =地球,2 =风,3 =空气,4 =火}}

2 个答案:

答案 0 :(得分:1)

对于map1方法中的每个键,查看相应的值,并且该值作为map2中的键存在,而不是将其添加到新的TreeMap中。

考虑一次迭代。 map1的密钥为bar,其值为1。现在,map2的值为1,因为它的值为earth。因此,放入新地图的数据为bar:earth,依此类推..

另请注意,由于结果地图是TreeMap元素将以字典顺序存储(因为键是字符串和TreeMap按照按键自然排序按顺序存储元素)。

答案 1 :(得分:0)

它正在计算函数map2(map1)的组成,并为您提供了大量的原始类型警告。