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