Каков наилучший способ перебора «де-нормированной» карты коллекций?Итерация по списку на карте
Для меня, например, следующую карту:
Map<String, List<String>> relations;
Для того, чтобы перебирать каждый ключ -> значение каждого я сделать что-то вроде:
for (Entry<String,List<String>> e : relations.entries()) {
for (String s : e.getValue()) {
System.out.println(e.getKey() + " - " + s);
}
}
Есть элегантный способ решения это с каким-то декоратором или так?
Я в надежде найти что-то вроде:
for(Entry e : Collections.getDenormalizeEntriesFromMapOfCollection(myMap)) {
System.out.println(e.getKey() + " - " + e.getValue());
}
Это даст тот же результат, только на второй ситуации вы бы одну запись для каждого ключа -> элемента коллекции.
[Guava] (https://code.google.com/p/guava-libraries/) ['Multimap'] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/ google/common/collect/Multimap.html) должен быть в состоянии делать то, что вы хотите (если вы можете переключиться с «Карта>»). Если вас интересуют только самые внутренние значения каждого «списка », также существует «Iterables.concat (relations.values ())». –
еще лучше;) спасибо! –