Heim > Java > javaLernprogramm > Wie finde ich mithilfe von Prädikaten die erste Nichtübereinstimmung in einem Java 8-Stream?

Wie finde ich mithilfe von Prädikaten die erste Nichtübereinstimmung in einem Java 8-Stream?

DDD
Freigeben: 2024-12-27 02:47:09
Original
888 Leute haben es durchsucht

How to Find the First Mismatch in a Java 8 Stream Using Predicates?

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);
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage