在集合上使用Java8流收集到HashSet中会导致“类型不匹配”错误

维托什卡

以下代码按预期编译:

import java.util.Arrays;
import java.util.HashSet;
import java.util.stream.Collectors;

public class Test2 {
    String[] tt = new String[]{ "a", "b", "c"};

    HashSet<String> bb =
        Arrays.asList(tt).stream().
        map(s -> s).
        collect(Collectors.toCollection(HashSet::new));
}

如果我改变tt是一个HashSetEclipse编译器失败,与消息Type mismatch: cannot convert from Collection<HashSet<String>> to HashSet<String>

public class Test2 {
    HashSet<String> tt = new HashSet<String>(Arrays.asList(new String[]{ "a", "b", "c"}));

    HashSet<String> bb =
        Arrays.asList(tt).stream().
        map(s -> s).
        collect(Collectors.toCollection(HashSet::new));
}
JB Nizet

那是意料之中的。Arrays.asList() 以vararg作为参数因此,它需要几个对象或对象数组,并将这些对象存储在列表中。

您正在传递一个HashSet作为参数。因此,此HashSet存储在列表中,因此最终得到一个包含单个HashSet的列表。

要将Set转换为List,请使用new ArrayList<>(set)或者,不要将其转换为列表,因为这是不必要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java 8中的Lambda将流收集到HashMap中

来自分类Dev

使用Java 8流收集到增值基于现有的键/值对的

来自分类Dev

使用java8流构建集合

来自分类Dev

Java 8流中间映射/收集到具有2个值的流

来自分类Dev

将Java-8流收集到Guava ImmutableList的最佳方法

来自分类Dev

如何使用Java流将多个列表收集到一个列表中?

来自分类Dev

Java流将对象列表收集到存储桶

来自分类Dev

Oracle 使用 LOOP 批量收集到集合中

来自分类Dev

使用流从地图和值,并收集到列表

来自分类Dev

是否可以使用一行将流收集到两个不同的集合?

来自分类Dev

在Java 8中收集到HashMap到LinkedHashMap

来自分类Dev

java8流收集不同的列表

来自分类Dev

使用Java8流实现此集合的最佳方法

来自分类Dev

如何收集到地图中值形成一个列表时重复键在流,在Java 8

来自分类Dev

无法将 Random int 流收集到 List 集合中

来自分类Dev

批量收集到OPEN光标中进行选择...不填充集合

来自分类Dev

Java:通配符类型不匹配导致编译错误

来自分类Dev

Java:通配符类型不匹配导致编译错误

来自分类Dev

收集HashSet / Java 8 / Regex模式/流API

来自分类Dev

Java8流和类型转换

来自分类Dev

Java流将数组收集到一个列表中

来自分类Dev

Java流:发行约收集到地图<字符串,对象>

来自分类Dev

Java流基于列的总和将Excel CSV收集到列表过滤

来自分类Dev

如何使用返回我自己的List实现的流收集到List?

来自分类Dev

处理列表流并仅使用非空值将其收集到map / ImmutableMap中

来自分类Dev

Java 8,在流中使用.parallel会导致OOM错误

来自分类Dev

java 8流从类型A的集合创建类型B的集合

来自分类Dev

将数据从可读流收集到变量中

来自分类Dev

将对象流收集到 Map 中

Related 相关文章

  1. 1

    使用Java 8中的Lambda将流收集到HashMap中

  2. 2

    使用Java 8流收集到增值基于现有的键/值对的

  3. 3

    使用java8流构建集合

  4. 4

    Java 8流中间映射/收集到具有2个值的流

  5. 5

    将Java-8流收集到Guava ImmutableList的最佳方法

  6. 6

    如何使用Java流将多个列表收集到一个列表中?

  7. 7

    Java流将对象列表收集到存储桶

  8. 8

    Oracle 使用 LOOP 批量收集到集合中

  9. 9

    使用流从地图和值,并收集到列表

  10. 10

    是否可以使用一行将流收集到两个不同的集合?

  11. 11

    在Java 8中收集到HashMap到LinkedHashMap

  12. 12

    java8流收集不同的列表

  13. 13

    使用Java8流实现此集合的最佳方法

  14. 14

    如何收集到地图中值形成一个列表时重复键在流,在Java 8

  15. 15

    无法将 Random int 流收集到 List 集合中

  16. 16

    批量收集到OPEN光标中进行选择...不填充集合

  17. 17

    Java:通配符类型不匹配导致编译错误

  18. 18

    Java:通配符类型不匹配导致编译错误

  19. 19

    收集HashSet / Java 8 / Regex模式/流API

  20. 20

    Java8流和类型转换

  21. 21

    Java流将数组收集到一个列表中

  22. 22

    Java流:发行约收集到地图<字符串,对象>

  23. 23

    Java流基于列的总和将Excel CSV收集到列表过滤

  24. 24

    如何使用返回我自己的List实现的流收集到List?

  25. 25

    处理列表流并仅使用非空值将其收集到map / ImmutableMap中

  26. 26

    Java 8,在流中使用.parallel会导致OOM错误

  27. 27

    java 8流从类型A的集合创建类型B的集合

  28. 28

    将数据从可读流收集到变量中

  29. 29

    将对象流收集到 Map 中

热门标签

归档