Что делает этот метод 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)наряду с выдачей вам внушительного количества предупреждений необработанного типа.

Другие вопросы по тегам