为什么迭代 不提供stream()和parallelStream()方法?

为什么迭代 不提供stream()和parallelStream()方法?,第1张

为什么迭代 不提供stream()和parallelStream()方法

这不是遗漏;2013年6月在EG清单上进行了详细讨论。

专家组的确切讨论源于此主题。

尽管似乎“显而易见”(即使是对专家组

stream()
来说也是如此)似乎很有意义
Iterable
,但
Iterable
如此普遍的事实却成为一个问题,因为显而易见的签名是:

Stream<T> stream()

并非总是您想要的。例如,有些

Iterable<Integer>
本来希望其流方法返回的东西
IntStream
。但是,将这种
stream()
方法放在层次结构中的较高位置将使其无法实现。因此,相反,我们把它很容易使一个
Stream
Iterable
,通过提供一个
spliterator()
方法。
stream()
in
的实现
Collection
只是:

default Stream<E> stream() {    return StreamSupport.stream(spliterator(), false);}

任何客户都可以通过以下方式从中获得所需的流

Iterable

Stream s = StreamSupport.stream(iter.spliterator(), false);

最后,我们的结论是,加入

stream()
Iterable
将是一个错误。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5129834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存