Streams 初級

述語に基づいてストリームの要素を取得またはスキップする。

✕ Java 8
List<Integer> result = new ArrayList<>();
for (int n : sorted) {
    if (n >= 100) break;
    result.add(n);
}
// no stream equivalent in Java 8
✓ Java 9+
var result = sorted.stream()
    .takeWhile(n -> n < 100)
    .toList();
// or: .dropWhile(n -> n < 10)
このコードに問題がありますか? お知らせください。
🎯

ショートサーキット

述語が失敗した時点で処理を停止します。

🔗

パイプライン対応

他のストリーム操作と自然に連鎖できます。

📖

宣言的

takeWhileは「100未満の間取得する」と英語のように読めます。

旧来のアプローチ
手動ループ
モダンなアプローチ
takeWhile/dropWhile
JDKバージョン
9
難易度
初級
Stream takeWhile / dropWhile
利用可能

JDK 9(2017年9月)以降、広く利用可能

takeWhile()は述語が真の間は要素を返し、最初に偽になった時点で停止します。dropWhile()は真の間は要素をスキップし、残りを返します。いずれも順序付きストリームで最も効果的です。

共有 𝕏 🦋 in