相关疑难解决方法(0)

番石榴:设置<K> +功能<K,V> =地图<K,V>?

是否有一种惯用的方式来获取a Set<K>和a Function<K,V>,并获得Map<K,V>实时视图?(即MapSetFunction组合支持,如果例如添加了元素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;
}
Run Code Online (Sandbox Code Playgroud)

java collections guava

33
推荐指数
4
解决办法
6854
查看次数

如何将一组转换为地图

我有一套,我想将它转换为地图,以便稍后在番石榴中使用它Maps.difference().我只关心差异中的关键.
拿出这个版本:

private <T> Map<T, T> toMap(Set<T> set) {
  return set.stream().collect(Collectors.toMap(Function.identity(), Function.identity()));
}
Run Code Online (Sandbox Code Playgroud)

但是,我知道通常,一个集合具有地图的支持字段.这是我用来创建地图的方法:

public static <E> Set<E> newConcurrentHashSet() {
  return Collections.newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}
Run Code Online (Sandbox Code Playgroud)

因为我只需要钥匙,我想也许我可以以某种方式获得这个领域的视图.任何的想法?

java guava

4
推荐指数
3
解决办法
1万
查看次数

标签 统计

guava ×2

java ×2

collections ×1