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

时间:2016-10-26 23:56:48

标签: java java-8 java-stream lazy-evaluation

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

MyList.stream()
  .filter(x -> predicate(x))
  .findFirstN(100)

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

1 个答案:

答案 0 :(得分:7)

MyList.stream()
  .filter(x -> predicate(x))
  .limit(100)