Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在集合上使用Java8流收集到HashSet中会出现“类型不匹配”错误_Java_Eclipse_Java 8_Java Stream_Hashset - Fatal编程技术网

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

在集合上使用Java8流收集到HashSet中会出现“类型不匹配”错误,java,eclipse,java-8,java-stream,hashset,Java,Eclipse,Java 8,Java Stream,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

以下代码按预期编译:

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));
}

这是意料之中的<代码>数组.asList()。因此,它需要几个对象或一组对象,并将这些对象存储在列表中

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


要将集合转换为列表,请使用
newarraylist(Set)
。或者,不要将其转换为列表,因为这是不必要的。

在这两种情况下,
list
创建都是完全过时的。在第一个示例中,只需使用
Arrays.stream(tt)
对数组元素进行流式处理,在第二个示例中,使用
tt.stream()
HashSet
的元素进行流式处理。当然,
map(s->s)
步骤也毫无意义…
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));
}