Java 使用番石榴将列表转换为集合

Java 使用番石榴将列表转换为集合,java,collections,guava,Java,Collections,Guava,有没有一种简单的方法来转换和转换用番石榴制作的列表 我想使用以下方法: Set result=Set.transformToSet(myList,新函数(){ 要应用的公共项(从项){ 返回转换(项目); } }); 这是我的代码,带有“tempCollection” Collection tempCollection=Collections2.transform(myList,新函数(){ 要应用的公共项(从项){ 返回转换(项目); } }); Set result=newHashSet(

有没有一种简单的方法来转换转换用番石榴制作的列表

我想使用以下方法:

Set result=Set.transformToSet(myList,新函数(){
要应用的公共项(从项){
返回转换(项目);
}
});
这是我的代码,带有“tempCollection”

Collection tempCollection=Collections2.transform(myList,新函数(){
要应用的公共项(从项){
返回转换(项目);
}
});
Set result=newHashSet(tempCollection);
设置结果=Fluentitable.from(myList)
.transform(新函数(){
@凌驾
要应用的公共文件(来自输入){
返回转换(输入);
}
})
.toSet();
这将创建一个不接受null的ImmutableSet。因此,如果希望集合包含null,则必须使用另一种解决方案,如当前使用的解决方案


请注意,如果是临时集合的创建让您感到不安,那么您不应该感到不安。没有复制。集合只是原始列表上的一个视图。

如果函数可能返回null,只需在转换()后执行
筛选(Predicates.notNull())
。@SeanPatrickFloyd:除非您希望在返回的集合中包含null。我会澄清我的答案。如果你不想要一个
ImmutableSet
,而不是
toSet()
,你可以做
copyito(newhashset())
,除其他事情外。没有类似的事情,因为A)有不同类型的集,具有不同的行为(例如
HashSet
TreeSet
)您需要选择要使用的方法,B)转换方法是惰性视图,
Set
不能是没有O(n)
size
包含方法的任意集合的视图。
Set<To> result = FluentIterable.from(myList)
                               .transform(new Function<From, To>() {
                                   @Override
                                   public To apply(From input) {
                                       return convert(input);
                                   }
                               })
                               .toSet();