几乎可以肯定,您永远不必以
Spliterator用户身份进行处理。如果你在写它时,才需要
Collection类型的自己, 还
打算并行优化他们的 *** 作。
就其价值而言,a
Spliterator是一种 *** 作集合中元素的方法,可以很容易地拆分出集合的一部分,例如,因为您要并行化并希望一个线程在集合的一部分上工作,一个线程在另一部分上工作,等等。
从本质上讲,您也绝对不应将类型的值保存
Stream到变量中。
Stream有点像
Iterator,因为它是一次性对象,您几乎总是在流畅的链中使用它,如Javadoc示例:
int sum = widgets.stream() .filter(w -> w.getColor() == RED) .mapToInt(w -> w.getWeight()) .sum();
Collector是map / reduce的“
reduce” *** 作的最通用,抽象的版本;特别是,它需要支持并行化和完成步骤。的示例
Collector包括:
- 求和,例如
Collectors.reducing(0, (x, y) -> x + y)
- StringBuilder追加,例如
Collector.of(StringBuilder::new, StringBuilder::append, StringBuilder::append, StringBuilder::toString)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)