java - 使用 Guava 将列表转换并转换为集合

标签 java collections guava

有没有一种简单的方法可以转换转换列表以使用 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 );

最佳答案

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

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

请注意,如果困扰您的是临时集合的创建,那么您不应该被困扰。没有复制。该集合只是原始列表的一个 View 。

关于java - 使用 Guava 将列表转换并转换为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080635/

相关文章:

java - 将 Guava ListMultimap 转换为 Java Map

java - Guava:通过中间处理进行迭代

java - 带有 spring-boot-starter-validation 的 Spring Boot 验证不适用于 Spring Boot 版本 2.4.4

java - 使用 Robolectric 对 Toast 消息内容进行单元测试

java - 从文本中提取产品实体

javascript - 洗牌 meteor 集合

java - Collections.rotate() 作为 Java 中数组列表的副本

java - 使用 mmc Rest API 将日志文件从后端发送到 UI - 仅发送文件中的更改的逻辑

c# 按值而不是键对 StringDictionary 进行排序

java - 所有 Null、任何 Null 都是可能的 Guava 谓词