如果您不知道Java 8中的确切迭代次数,如何停止无限流

时间:2018-10-02 13:34:13

标签: java-8

如果您不知道确切的迭代次数,将下面的while循环转换为功能流的最佳方法是什么?

async someFunction() {
   let col = firestore.collection("mycollection");
   let now = admin.firestore.Timestamp.now();
   let twentyMinsAgo = admin.firestore.Timestamp.fromMillis(now.toMillis() - (1200 * 1000));

   col.where('LastEdited', '>=', twentyMinsAgo) //Now ok
      .get()
}

我想出了类似的方法,但是我想删除int i = 10; while (i > 1) { System.out.println(i); i--; } 并停止使用谓词条件之类的迭代

limit

1 个答案:

答案 0 :(得分:3)

takeWhile,尽管从Java-9开始:

 Stream.iterate(10, n -> n - 1) 
       .takeWhile(i -> i > 1)
       .forEach(System.out::println);

另请参见a back port for java-8 here