gpt4 book ai didi

java - IntStream 的用例是什么?

转载 作者:行者123 更新时间:2023-11-29 03:14:26 28 4
gpt4 key购买 nike

我写了一些代码来创建一个 List<Integer>来自Stream<List<Integer>>像这样:

List<Integer> abc = stream.flatMap(e -> e.stream()).
collect(Collectors.toList());

但我对如何使用 IntStream 很感兴趣。我以为我可以做

List<Integer> abc = stream.flatMapToInt(e -> e.stream()).
collect(Collectors.toList());

使用 flatMapToInt给我一个收集器会收集的 IntStream,但我得到一个编译错误:

Type mismatch: cannot convert from Collector<Object,?,List<Object>> to Supplier<R>

什么是 IntStream,它与常规流有何不同,什么时候使用它?

最佳答案

你或多或少使用了IntStream当您有不需要装箱的中间或终端操作时,以及经常需要算术结果时。例如,你可以写

students.stream().mapToInt(Student::getTestScore).average()

通常,当您的中间结果未装箱时,您会希望使用它——List<List<Integer>> 不是这种情况。或者你将未装箱的结果映射到装箱的东西 mapToObj ,或者用它做一些算术运算,比如 average()在这里。

除了这个用例可能带来的痛苦之外,它不会给你带来任何好处,它实际上并不关心列表内容是 Integer ;你在这里没有使用任何关于整数的东西。

关于java - IntStream 的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27494074/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com