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

Oma*_*icz 6 java collections guava

有没有一种简单的方法来转换转换列表与番石榴设置?

我想用方法:

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

这是我的代码,带有"tempCollection"

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

JB *_*zet 28

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

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

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

  • 如果你不想要一个`ImmutableSet`,而不是`toSet()`你可以做`copyInto(new HashSet <To>())`等等. (4认同)