在Java 8中,List接口提供了一個(gè)名為filter的方法,用于過濾集合中的元素。
該方法接收一個(gè)Predicate類型的參數(shù),該參數(shù)是一個(gè)函數(shù)式接口,可以接受一個(gè)輸入?yún)?shù),并返回一個(gè)布爾值。當(dāng)輸入?yún)?shù)符合某種條件時(shí),返回true,否則返回false。
filter方法會(huì)遍歷集合中的每個(gè)元素,并將每個(gè)元素傳遞給Predicate類型的參數(shù),判斷該元素是否符合條件。如果符合條件,則將該元素添加到新的集合中,最終返回新的集合。
以下是一個(gè)示例:
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)建了一個(gè)整數(shù)列表numbers,然后使用stream方法將其轉(zhuǎn)換為一個(gè)流。接著調(diào)用filter方法,并傳入一個(gè)lambda表達(dá)式,判斷該元素是否為偶數(shù)。最后使用collect方法將過濾后的元素收集到一個(gè)新的列表中。最終輸出新的列表,其中包含原列表中的偶數(shù)元素。