【发布时间】:2017-03-21 08:02:20
【问题描述】:
我有一套,我想把它转换成地图,以便以后在 guava 的Maps.difference() 中使用它。我只关心差异的关键。
想出了这个版本:
private <T> Map<T, T> toMap(Set<T> set) {
return set.stream().collect(Collectors.toMap(Function.identity(), Function.identity()));
}
但是,我知道通常,一个集合有一个 map 的支持字段。这是我用来创建地图的方法:
public static <E> Set<E> newConcurrentHashSet() {
return Collections.newSetFromMap(new ConcurrentHashMap<E, Boolean>());
}
由于我只需要密钥,我想也许我可以通过某种方式查看该字段。有什么想法吗?
【问题讨论】:
-
为什么不使用google.github.io/guava/releases/snapshot/api/docs/com/google/…?你为什么要强制一个集合进入地图?
-
我想知道哪些只在左边,哪些只在右边,哪些是共同的(类似于地图差异)
-
如果您只需要密钥,为什么要转换为 Map?地图基本上是一个带有值的集合,所以你所说的没有意义。