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()方法在實際的開發中有很多應用場景。以下列舉了一些常見的場景:
List<Student> adults = students.stream() .filter(s -> s.getAge() > 18) .collect(Collectors.toList());
List<Integer> range = numbers.stream() .filter(n -> n >= 10 && n <= 20) .collect(Collectors.toList());
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中文網其他相關文章!