Есть ли идиоматический способ взять 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;
}