【发布时间】:2019-07-06 11:14:28
【问题描述】:
我正在尝试按照下一个示例理解一些内容:
Stream.of("a1", "a2", "a3")
.map(s -> s.substring(1))
.mapToInt(Integer::parseInt)
.max()
. (etc.)
为什么 mapToInt 需要
Integer::parseInt
作为参数?它不应该是隐含的吗?这个参数是不是多余的?
【问题讨论】:
-
您可以提供任何返回
int或Integer的方法,我猜,但如果您正在流式传输Strings 的数组,那么Integer.parseInt似乎是最佳选择。 . -
Stream#mapToInt方法采用IntFunction将任意类型(不仅仅是String)映射到int。该方法还返回一个IntStream,它是一个专用于int的流。为什么你认为这个IntFunction参数可能是隐含的? -
如果你有
List<Car>,而每辆车都有car.getAmountOfDors(),你想创建int[] dors?你会如何为它写流?应该在???中放置什么以使int[] dors = cars.stream().???.toArray();工作?
标签: java java-8 java-stream