findFirst()用于Java流,但是对于n个元素?

And*_*rew 2 java lazy-evaluation java-8 java-stream

我想从流中收集前n个元素,而不是遍历整个事物.是否有标准方法可以做到这一点?翼

MyList.stream()
  .filter(x -> predicate(x))
  .findFirstN(100)
Run Code Online (Sandbox Code Playgroud)

会从流中返回最多100个元素的集合吗?我的另一种方法是评估整个流,然后从结果中进行采样,但这并没有利用流固有的惰性评估.

inf*_*tor 7

MyList.stream()
  .filter(x -> predicate(x))
  .limit(100)
Run Code Online (Sandbox Code Playgroud)