首頁  >  文章  >  Java  >  Java 8中的Stream API:如何使用filter()方法篩選集合中的元素

Java 8中的Stream API:如何使用filter()方法篩選集合中的元素

WBOY
WBOY原創
2023-08-01 08:43:483418瀏覽

Java 8中的Stream API:如何使用filter()方法篩選集合中的元素

引言:
Java 8引入了Stream API,這為我們處理集合提供了一種更簡潔、更有效率的方式。 Stream是Java 8提供的新的抽象層,它允許我們以一種函數式程式設計的方式來處理各種資料。在Stream API中,filter()方法是其中一個非常有用的方法,它可以用來篩選集合中的元素。在本篇文章中,我們將深入了解filter()方法,並探索它的用法和範例。

一、什麼是filter()方法
filter()方法是Stream API中的一個中間操作方法。它接收一個Predicate函數式介面作為參數,用來篩選集合中的元素。 Predicate介面定義了一個test(T t)方法,用於對給定的參數進行條件判斷,並傳回一個布林值。 filter()方法將集合中的每個元素作為參數傳遞給Predicate的test()方法,如果傳回true,則該元素被保留下來,否則被捨棄。

二、如何使用filter()方法
要使用filter()方法,首先需要先建立一個集合,然後轉換為Stream。然後呼叫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);
    }
}

在上面的範例中,我們先建立一個Listc0f559cc8d56b43654fcbe4aa9df7b4a對象,並加入了一些數字。然後我們將這個List物件轉換為Stream對象,並使用filter()方法來篩選出其中的偶數。在filter()方法的參數中,我們使用了Lambda表達式 n -> n % 2 == 0 來判斷數字是否為偶數。最後,我們使用collect()方法將篩選後的結果轉換為List對象,並將其列印出來。

輸出結果為:"偶數列表:[2, 4]"

三、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中的Stream API:如何使用filter()方法篩選集合中的元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn