Erste Nichtübereinstimmung in einem Stream mithilfe von Prädikaten finden
Java 9 führte die Operationen takeWhile und dropWhile ein, die eine praktische Möglichkeit bieten, Streams basierend einzuschränken auf Prädikaten. Allerdings gibt es in Java 8 keine integrierte Operation für diesen Zweck.
Hier ist eine benutzerdefinierte Implementierung zum Finden der ersten Nichtübereinstimmung in einem Stream mithilfe von Prädikaten in Java 8:
import java.util.stream.Stream; public class LimitStreamByPredicate { public static void main(String[] args) { // Create an infinite stream of numbers Stream<Integer> numbers = Stream.iterate(1, n -> n + 1); // Predicate to check if a number is less than 10 Predicate<Integer> predicate = n -> n < 10; // Create a limited stream using iteration Stream<Integer> result = numbers.iterator() .takeWhile(predicate) .map(n -> n); // Print the limited stream result.forEach(System.out::println); } }
In diesem Code verwenden wir einen Iterator, um den unendlichen Stream manuell zu durchlaufen, bis er auf ein Element trifft, das das Prädikat nicht erfüllt. Anschließend erstellen wir einen neuen Stream (Ergebnis), der nur die Elemente enthält, die mit dem Prädikat übereinstimmen.
Dieser benutzerdefinierte Ansatz bietet eine äquivalente Funktionalität wie takeWhile in Java 8 und ermöglicht es Ihnen, Streams sogar basierend auf bestimmten Kriterien einzuschränken wenn eine integrierte Operation in der aktuellen Java-Version nicht verfügbar ist.
Das obige ist der detaillierte Inhalt vonWie finde ich mithilfe von Prädikaten die erste Nichtübereinstimmung in einem Java 8-Stream?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!