【发布时间】:2014-12-11 13:44:04
【问题描述】:
Guava 有一个静态方法Maps.uniqueIndex(Iterable<V> values, Function<? super V,K> keyFunction),它通过应用于各个元素的输入函数的结果来映射输入集合中的每个条目。
对于 Sets(返回值不是 map 而是 set)有这个函数的等价物吗?
【问题讨论】:
标签: java collections guava
Guava 有一个静态方法Maps.uniqueIndex(Iterable<V> values, Function<? super V,K> keyFunction),它通过应用于各个元素的输入函数的结果来映射输入集合中的每个条目。
对于 Sets(返回值不是 map 而是 set)有这个函数的等价物吗?
【问题讨论】:
标签: java collections guava
一些替代方案:
Maps.uniqueIndex(values, keyFunction).keySet();
ImmutableSet.copyOf(Collections2.transform(values, function));
【讨论】:
我实际上找到了一个直截了当的解决方案:
FluentIterable.from(values).transform(keyFunction).toSet();
【讨论】: