Heim >Java >javaLernprogramm >Wie implementiert man „takeWhile' in Java 8 Streams?

Wie implementiert man „takeWhile' in Java 8 Streams?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 00:08:10393Durchsuche

How to Implement `takeWhile` in Java 8 Streams?

So begrenzen Sie einen Stream, bis ein Prädikat fehlschlägt

Java 8-Streams bieten einen leistungsstarken Satz von Operationen zum Bearbeiten und Verarbeiten von Daten. Zu diesen Operationen gehört die Notwendigkeit, einen Stream zu begrenzen, bis das erste Element nicht mehr mit einem bestimmten Prädikat übereinstimmt. In dieser Frage wird untersucht, wie diese Funktionalität in Java 8 erreicht werden kann.

In Java 9 wurde die takeWhile-Operation eingeführt, mit der ein Stream basierend auf einem Prädikat begrenzt werden kann. Für Java 8 müssen wir jedoch eine alternative Lösung finden.

Lösung

Um takeWhile in Java 8 zu implementieren, können wir den folgenden Ansatz verwenden:

  • Erstellen Sie einen Iterationsstream, der eine Folge von Elementen auf unbestimmte Zeit generiert.
  • Verwenden Filter, um einen Stream zu erstellen, der nur die Elemente enthält, die dem Prädikat entsprechen.
  • Verwenden Sie „Limit“, um die maximale Anzahl von Elementen im resultierenden Stream festzulegen.

Hier ist ein Beispielcode:

IntStream
    .iterate(1, n -> n + 1)
    .filter(n -> n < 10)
    .limit(-1)
    .forEach(System.out::println);

In JDK 9 kann die takeWhile-Operation direkt verwendet werden, wie im folgenden Beispiel gezeigt:

IntStream
    .iterate(1, n -> n + 1)
    .takeWhile(n -> n < 10)
    .forEach(System.out::println);

Das obige ist der detaillierte Inhalt vonWie implementiert man „takeWhile' in Java 8 Streams?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn