Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java 9 Stream API Erweiterungen: takeWhile, dropWhile, iterate & ofNullable

Neue Stream-Methoden in Java 9

Die Stream-API erhält vier mächtige Erweiterungen für flexiblere Datenverarbeitung.

1. takeWhile(Predicate)

Nimmt Elemente aus dem Stream, solange das Prädikat true liefert. Bei geordneten Streams: längster Präfix. Bei ungeordneten: beliebiges Subset.

Stream.of("a", "b", "c", "", "e", "f")
      .takeWhile(s -> !s.isEmpty())
      .forEach(System.out::print); // Ausgabe: abc

2. dropWhile(Predicate)

Verwirft Elemente vom Anfang, solange das Prädikat true liefert. Gibt den Rest zurück.

Stream.of("a", "b", "c", "", "e", "f")
      .dropWhile(s -> !s.isEmpty())
      .forEach(System.out::print); // Ausgabe: ef

Stream.of("a", "b", "c", "", "e", "", "f")
      .dropWhile(s -> !s.isEmpty())
      .forEach(System.out::print); // Ausgabe: ef (nach erstem Leerstring alles)

3. iterate(seed, hasNext, next) – Endbedingung

Die klassische iterate(seed, next) ist unendlich. Die neue Variante nimmt ein Predicate als Abbruchbedingung.

IntStream.iterate(3, x -> x < 10, x -> x + 3)
         .forEach(System.out::println);
// Ausgabe: 3, 6, 9 (stopp vor 12, da 12 < 10 false)

Äquivalent zu: for (int x = 3; x < 10; x += 3)

4. ofNullable(T)

Erzeugt einen Stream mit einem Element (wenn nicht null) oder leeren Stream (wenn null). Vermeidet NullPointerException & explizite Null-Checks.

Stream.ofNullable("Hallo").count(); // 1
Stream.ofNullable(null).count();    // 0

// Praktisch in flatMap:
List<String> list = List.of("A", null, "B");
list.stream()
    .flatMap(s -> Stream.ofNullable(s)) // null → leerer Stream
    .forEach(System.out::println); // A, B

Zusammenfassung

Methode Seit Zweck
takeWhile(pred) Java 9 Präfix nehmen bis Prädikat false
dropWhile(pred) Java 9 Präfix verwerfen bis Prädikat false
iterate(seed, hasNext, next) Java 9 Endliche Iteration mit Bedingung
ofNullable(t) Java 9 Null-sicherer 0/1-Element Stream

Praxis-Tipps

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java 9 (JDK 9): Wichtigste Features & Vorteile – Modularität, JShell, HTTP/2 & mehr