Streams Einsteiger

Elemente aus einem Stream basierend auf einem Prädikat nehmen oder überspringen.

✕ 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)
Problem mit diesem Code entdeckt? Sag uns Bescheid.
🎯

Kurzschlussauswertung

Stoppt die Verarbeitung, sobald das Prädikat fehlschlägt.

🔗

Pipeline-freundlich

Kettet sich natürlich mit anderen Stream-Operationen.

📖

Deklarativ

takeWhile liest sich wie natürliche Sprache: 'nehme, solange kleiner als 100'.

Alter Ansatz
Manuelle Schleife
Moderner Ansatz
takeWhile/dropWhile
Seit JDK
9
Schwierigkeitsgrad
Einsteiger
Stream takeWhile / dropWhile
Verfügbar

Weitgehend verfügbar seit JDK 9 (Sept. 2017)

takeWhile() gibt Elemente zurück, solange das Prädikat wahr ist, und stoppt beim ersten Falsch-Wert. dropWhile() überspringt Elemente, solange es wahr ist, und gibt den Rest zurück. Beide funktionieren am besten bei geordneten Streams.

Teilen 𝕏 🦋 in