2013-11-30 4 views
0

У меня есть hashmap1 < O1, O2>нагрузки HashMap со значениями из другого HashMap

Я хочу создать hashmap2 < O1, O3> из исходного hashmap1 где O3 является полем в O2.

Я знаю, что я мог бы использовать строку кода

hashmap1.values().O2 

получить коллекцию О2 быть загружена, но у меня возникают проблемы кусочков вместе.

Действительно ли мне нужно использовать цикл for для этого процесса?

С уважением.

+0

Похоже плохой инкапсуляцией для меня. – duffymo

ответ

2

Вы можете использовать набор ввода для перебора значений:

for(Entry<O1,O2> e : hashmap1.entrySet()){ 
    hashmap2.put(e.getKey(), e.getValue().getO2); 
} 
2

Try:

Map<O1, O3> newMap = new HashMap<>(originalMap.size()); 
for(Entry<O1, O2> originalEntry : originalMap.entrySet()) { 
    newMap.put(originalEntry.getKey(), originalEntry.getValue().getO3()); 
} 
Смежные вопросы