Что делает этот метод Java?
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}; карта 2={1= земля, 2= ветер, 3= воздух, 4= огонь}
2 ответа
Для каждого ключа в map1 метод смотрит на соответствующее значение, и это значение существует как ключ в map2, чем помещает его в новый TreeMap.
Рассмотрим одну итерацию. у map1 есть ключ bar
и это ценность 1
, Теперь map2 имеет 1
как это ключ со значением earth
, Таким образом, данные, которые помещены в новую карту bar:earth
и так далее..
Также обратите внимание, что результирующая карта является TreeMap
элементы будут храниться в лексикографическом порядке (поскольку ключи являются строками, а TreeMap хранит элементы в отсортированном порядке в соответствии с естественным порядком ключей).
Это расчет состава функций map2(map1)
наряду с выдачей вам внушительного количества предупреждений необработанного типа.