在Java 8中,List接口提供了一個名為filter的方法,用于過濾集合中的元素。
該方法接收一個Predicate類型的參數(shù),該參數(shù)是一個函數(shù)式接口,可以接受一個輸入?yún)?shù),并返回一個布爾值。當(dāng)輸入?yún)?shù)符合某種條件時,返回true,否則返回false。
filter方法會遍歷集合中的每個元素,并將每個元素傳遞給Predicate類型的參數(shù),判斷該元素是否符合條件。如果符合條件,則將該元素添加到新的集合中,最終返回新的集合。
以下是一個示例:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 輸出[2, 4]
該示例中,首先創(chuàng)建了一個整數(shù)列表numbers,然后使用stream方法將其轉(zhuǎn)換為一個流。接著調(diào)用filter方法,并傳入一個lambda表達(dá)式,判斷該元素是否為偶數(shù)。最后使用collect方法將過濾后的元素收集到一個新的列表中。最終輸出新的列表,其中包含原列表中的偶數(shù)元素。