【发布时间】:2017-05-01 16:51:00
【问题描述】:
我正在寻找一个问题的答案:方法 .toArray(IntFunction generator) 如何知道新数组的大小。
实际上我知道如何使用这种方法来创建包含所有stream 元素的新数组(例如String[]::new, Size -> new String[Size]),但在原始java 代码中我们可以看到IntFunction<A[]> 生成器将给定函数应用于int争论。我的问题是这个函数如何获取流的元素数量。
我已经阅读了这个类的源代码3个小时,但我没有找到答案。
非常感谢!
【问题讨论】:
-
你在哪里找 toArray() 源代码?
-
流是调用 IntFunction 的流。它将要创建的数组的长度传递给 IntFunction。流知道它需要在数组中存储多少元素(如果不知道,它会多次调用 IntFunction 并连接所有数组)。
标签: java arrays java-8 java-stream