java – Stream的SKIP方法可以使无限流有限吗?

“limit()和skip()方法使Stream变小.它们可以使有限流变小,或者它们可以从无限流中产生有限流.方法签名如下所示:

Stream<T> limit(int maxSize)
Stream<T> skip(int n)

以下代码c ….“

以上是OCP java 8书的摘录.当它说“可以从无限流中产生有限的流”时,它们是在一起还是单独表示它们?我可以想象limit()会如何使无限流变小,但是skip()单独如何实现呢?有没有办法或文件中的措辞需要更清晰?

解决方法

“可以使无限流中的有限流”仅适用于limit(),而不是skip().

跳过就像从海洋里取一杯水,想知道“海洋中剩下多少水?”,而限制就像是从它那里取出同样的水,想知道“我从海洋中取出了多少水? “

如果流是无限的,那么跳过一些元素仍然会给你带来无限的流……

Stream.iterate(0L,i -> i + 1).skip(100).forEach(System.out::println);

理论上这将永远运行.所以很有可能只是一个小小的不准确性,逃过了本书的评论者.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...