将List转换并转换为使用Guava进行设置

时间:2013-11-19 19:45:19

标签: java collections guava

是否有一种简单的方法可以转换转换列表以使用番石榴设置?

我想使用方法:

Set<To> result = Sets.transformToSet(myList, new Function<From, To>() {
            public To apply(From item) {
                return convert(item);
            }
        });

这是我的代码,带有“tempCollection”

Collection<To> tempCollection = Collections2.transform(myList, new Function<From, To>() {
            public To apply(From item) {
                return convert(item);
            }
        });
Set<To> result = newHashSet(tempCollection );

1 个答案:

答案 0 :(得分:28)

Set<To> result = FluentIterable.from(myList)
                               .transform(new Function<From, To>() {
                                   @Override
                                   public To apply(From input) {
                                       return convert(input);
                                   }
                               })
                               .toSet();

这会创建一个ImmutableSet,它不接受null。因此,如果您希望Set包含null,则必须使用其他解决方案,例如您当前使用的解决方案。

请注意,如果它是创建困扰您的临时集合,您不应该被打扰。没有复制。该集合只是原始列表的视图。