首頁 > Java > java教程 > 如何基於謂詞限制無限 Java 8 流?

如何基於謂詞限制無限 Java 8 流?

Mary-Kate Olsen
發布: 2024-12-26 13:40:10
原創
555 人瀏覽過

How Can I Limit an Infinite Java 8 Stream Based on a Predicate?

Java 8:實作基於謂詞匹配的流限制

Java 8 缺乏特定的流操作,該操作限制潛在的無限流,直到某個元素無法符合給定謂詞。雖然 Java 9 為此引入了 takeWhile 操作,但 Java 8 使用者尋求替代的實作策略。

Java 8 中的解

在Java 中實作基於謂詞的流限制8、可以採用以下方法:

  • 建立一個無限Stream:利用Stream.iterate或Stream.generate建立無限的值流。
  • 使用限制和過濾器操作:應用具有任意限制的限制操作(例如Long.MAX_VALUE) 以避免無限迭代。然後,使用篩選器評估每個元素的謂詞。這可確保迭代繼續,直到謂詞失敗。

範例:

IntStream.iterate(1, n -> n + 1)
    .limit(Long.MAX_VALUE)
    .filter(n -> n < 10)
    .forEach(System.out::println);
登入後複製

Java 9 及更高版本

如果使用或更高版本

IntStream.iterate(1, n -> n + 1)
    .takeWhile(n -> n < 10)
    .forEach(System.out::println);
登入後複製
如果使用高版本,takeWhile 操作會簡化實作:

以上是如何基於謂詞限制無限 Java 8 流?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板