Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Java 8 打印与Java8中的数组流不同_Java 8 - Fatal编程技术网

Java 8 打印与Java8中的数组流不同

Java 8 打印与Java8中的数组流不同,java-8,Java 8,如何在Java8中从数组流打印不同的元素 我正在玩Java-8,并试图了解它如何与distinct一起工作 Arrays.stream通常返回一个流,但它有一个重载版本:streamint[]array,它返回一个IntStream,这是一个基本整数流。IntStream.distinct也返回一个IntStream 为了收集它,您可以使用collectCollectors.toList: 还可以将结果存储到int[]中: Arrays.stream通常返回一个流,但它有一个重载版本:strea

如何在Java8中从数组流打印不同的元素

我正在玩Java-8,并试图了解它如何与distinct一起工作

Arrays.stream通常返回一个流,但它有一个重载版本:streamint[]array,它返回一个IntStream,这是一个基本整数流。IntStream.distinct也返回一个IntStream

为了收集它,您可以使用collectCollectors.toList:

还可以将结果存储到int[]中:

Arrays.stream通常返回一个流,但它有一个重载版本:streamint[]array,它返回一个IntStream,这是一个基本整数流。IntStream.distinct也返回一个IntStream

为了收集它,您可以使用collectCollectors.toList:

还可以将结果存储到int[]中:


您无法直接看到不同的值,因为它不是一个终端操作,并且它返回的IntStream如文档中所述:

返回由此流的不同元素组成的流

您必须终止流,类似于示例中已有的代码:

List<String> distinctElements = list.stream()
        .distinct()
        .boxed()
        .collect(Collectors.toList());
在这里,您调用方法,它是一个终端操作,您将得到一个不同元素的列表作为回报


和都是终端操作,它们立即执行计算,关闭流并返回一个值。

您无法直接看到不同的值,因为它不是终端操作,它返回IntStream,如文档中所述:

返回由此流的不同元素组成的流

您必须终止流,类似于示例中已有的代码:

List<String> distinctElements = list.stream()
        .distinct()
        .boxed()
        .collect(Collectors.toList());
在这里,您调用方法,它是一个终端操作,您将得到一个不同元素的列表作为回报


和都是终端操作,它们立即执行计算,关闭流并返回一个值。

我认为我们不能这样做:这一行有多个标记-方法collectSupplier,ObjIntConsumer,IntStream类型中的BiConsumer不适用于参数收集器-类型不匹配:无法从收集器转换为Supplier@Prateek我明白了,你必须先把它转换成一个流。这可以用boxed方法完成。我不认为我们可以在上面这样做:这一行有多个标记-类型IntStream中的方法collectSupplier、ObjIntConsumer、BiConsumer不适用于参数Collector-类型不匹配:无法从Collector转换为Supplier@Prateek我明白了,你必须先把它转换成一个流。这可以用装箱法来完成。我说的是数组Stream@PrateekArrays.streamnumbers返回流对象。嘿,我们不能直接使用Arrays.streamnumbers.distinct.collectCollectors.toList;,请参阅下面显示的错误comments@Prateek您必须在收集之前使用.boxed从IntStream切换到流,它将起作用。要赶上只想打印它的问题代码,您可以不使用boxed:System.out.printlnArrays.tostringarays.streamnumbers.distinct.toArray;我说的是阵列Stream@PrateekArrays.streamnumbers返回流对象。嘿,我们不能直接使用Arrays.streamnumbers.distinct.collectCollectors.toList;,请参阅下面显示的错误comments@Prateek您必须在收集之前使用.boxed从IntStream切换到流,它将起作用。要赶上只想打印它的问题代码,您可以不使用boxed:System.out.printlnArrays.tostringarays.streamnumbers.distinct.toArray@为什么要投反对票?@为什么要投反对票?
Arrays.stream(numbers)
    .distinct()
    .boxed()
    .collect(Collectors.toList());
Arrays.stream(numbers)
    .distinct()
    .toArray();
List<String> distinctElements = list.stream()
        .distinct()
        .boxed()
        .collect(Collectors.toList());