Гуава: Установить <K> + Функция <K, V> = Карта <K, V>?
Есть ли идиоматический способ взятьSet<K>
иFunction<K,V>
и получитьMap<K,V>
прямая трансляция? (то естьMap
поддерживаетсяSet
а такжеFunction
комбо, и если, например, элемент добавляется кSet
то соответствующая запись также существует вMap
).
(см. напримерCollections2.filter
для большего обсуждения живых представлений)
Что делать, если просмотр в реальном времени не нужен? Есть ли что-то лучше, чем это:
public static <K,V> Map<K,V> newMapFrom(Set<K> keys, Function<? super K,V> f) {
Map<K,V> map = Maps.newHashMap();
for (K k : keys) {
map.put(k, f.apply(k));
}
return map;
}