ホームページ >Java >&#&チュートリアル >述語を使用して Java 8 ストリーム内の最初の不一致を見つける方法

述語を使用して Java 8 ストリーム内の最初の不一致を見つける方法

DDD
DDDオリジナル
2024-12-27 02:47:09934ブラウズ

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

述語を使用したスト​​リーム内の最初の不一致の検索

Java 9 では、takewhile 操作とdropwhile 操作が導入され、ストリームベースでストリームを制限する便利な方法が提供されています。述語について。ただし、Java 8 には、この目的のための組み込み操作はありません。

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);
    }
}

このコードでは、反復子を使用して、述語を満たさない要素が見つかるまで無限ストリームを手動で繰り返します。次に、述語に一致する要素のみを含む新しいストリーム (結果) を作成します。

このカスタム アプローチは、Java 8 の takewhile と同等の機能を提供し、特定の基準に基づいてストリームを制限できます。組み込み操作が現在の Java バージョンで使用できない場合。

以上が述語を使用して Java 8 ストリーム内の最初の不一致を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。