获得一条流

示例: 获取包含 30 个元素的 Stream,包含集合的第 21 到第 50 个(包含)元素。

final long n = 20L; // the number of elements to skip
final long maxSize = 30L; // the number of elements the stream should be limited to
final Stream<T> slice = collection.stream().skip(n).limit(maxSize);

笔记:

  • 如果 n 为负或 maxSize 为负,则抛出 IllegalArgumentException
  • skip(long)limit(long) 都是中间操作
  • 如果一个流包含少于 n 的元素,那么 skip(n) 将返回一个空流
  • skip(long)limit(long) 都是连续流管道上的廉价操作,但在有序并行管道上可能非常昂贵