Java 8 のストリーム API: filter() メソッドを使用してコレクション内の要素をフィルターする方法

WBOY
リリース: 2023-08-01 08:43:48
オリジナル
3421 人が閲覧しました

Java 8 の Stream API: filter() メソッドを使用してコレクション内の要素をフィルターする方法

はじめに:
Java 8 では、より簡潔な方法を提供する Stream API を導入しました。コレクションを処理する、より効率的な方法です。 Stream は Java 8 によって提供される新しい抽象化レイヤーで、関数型プログラミングの方法でさまざまなデータを処理できるようになります。 Stream API では、filter() メソッドは、コレクション内の要素をフィルタリングするために使用できる非常に便利なメソッドの 1 つです。この記事では、filter() メソッドを詳しく見て、その使用法と例を見ていきます。

1. filter() メソッドとは
filter() メソッドは、Stream API の中間操作メソッドです。これは、コレクション内の要素をフィルター処理するために使用される Predicate 関数インターフェイスをパラメーターとして受け取ります。 Predicate インターフェイスは test(T t) メソッドを定義します。このメソッドは、指定されたパラメーターを条件付きで判断し、ブール値を返すために使用されます。 filter() メソッドは、コレクション内の各要素をパラメータとして Predicate の test() メソッドに渡します。true が返された場合、要素は保持され、それ以外の場合は破棄されます。

2. filter() メソッドの使用方法
filter() メソッドを使用するには、まずコレクションを作成してから、それをストリームに変換する必要があります。次に、filter() メソッドを呼び出し、Predicate 関数インターフェイスをパラメーターとして使用します。 filter() メソッドは、基準を満たす要素を含む新しい Stream を返します。最後に、ターミナル操作メソッドを使用して、この新しい Stream を処理します。

以下は、filter() メソッドの使用法を示すサンプル コードです:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class FilterExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);

        // 使用filter()方法筛选偶数
        List<Integer> evenNumbers = numbers.stream()
                .filter(n -> n % 2 == 0)
                .collect(Collectors.toList());

        System.out.println("偶数列表:" + evenNumbers);
    }
}
ログイン後にコピー

上の例では、まず List オブジェクトを作成し、いくつかの数値を追加します。次に、この List オブジェクトを Stream オブジェクトに変換し、filter() メソッドを使用して偶数を除外します。 filter() メソッドのパラメータでは、ラムダ式 n -> n % 2 == 0 を使用して、数値が偶数かどうかを判断します。最後に、collect() メソッドを使用して、フィルター処理された結果を List オブジェクトに変換し、出力します。

出力結果は「偶数リスト: [2, 4]」です。

3. filter() メソッドの応用シナリオ
filter() メソッドには実際に多くの応用例があります。開発風景。一般的なシナリオの一部を以下に示します。

  1. 特定の条件を満たす要素をフィルターで除外します。たとえば、18 歳以上のすべての学生を学生リストから除外します。
List<Student> adults = students.stream()
        .filter(s -> s.getAge() > 18)
        .collect(Collectors.toList());
ログイン後にコピー
  1. さまざまな要素をフィルタリングして除外します。たとえば、数値のリストから 10 以上 20 以下のすべての数値をフィルターで除外します。
List<Integer> range = numbers.stream()
        .filter(n -> n >= 10 && n <= 20)
        .collect(Collectors.toList());
ログイン後にコピー
  1. 空でない要素をフィルターで除外します。たとえば、文字列のリストから空でない文字列をすべて除外します。
List<String> nonEmptyStrings = strings.stream()
        .filter(s -> s != null && !s.isEmpty())
        .collect(Collectors.toList());
ログイン後にコピー

概要:
filter() メソッドは、Stream API で非常に一般的に使用されるメソッドであり、コレクション内の要素を効率的にフィルターするのに役立ちます。 filter() メソッドを使用すると、簡潔かつエレガントな方法でデータを処理できます。この記事が filter() メソッドの使い方を理解し、実際のプロジェクトで柔軟に活用できるようになれば幸いです。

以上がJava 8 のストリーム API: filter() メソッドを使用してコレクション内の要素をフィルターする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート