透過滿足指定謂詞的流中的項目所組成的流將由流過濾函數傳回。這是一個中間級操作。這些操作總是懶惰的,即運行過濾函數或其他中間操作實際上並不過濾任何內容;相反,它產生一個新的流,當遍歷時,包括滿足提供的謂詞的初始流的項目。
Stream<T> filter(Predicate<? super T> predicate)
當T是謂詞輸入的類型,且stream是介面。
A new stream.
Eliminating items that may be divided into a range of numbers from 0 to 10.
在特定索引處刪除以大寫字母開頭的條目。
刪除以特定字母結尾的元件。
// Java Program to get a Stream Consisting of the Elements import java.util.*; public class Example { public static void main(String[] args){ List<Integer> list = Arrays.asList(3, 4, 6, 12, 20); list.stream() .filter(num -> num % 5 == 0) .forEach(System.out::println); } }
20
// Java Program to Get Stream Consisting of Elements import java.util.stream.Stream; public class Example { public static void main(String[] args) { Stream<String> stream = Stream.of("class", "FOR", "QUIZ", "waytoclass"); stream.filter(str -> Character.isUpperCase(str.charAt(1))) .forEach(System.out::println); } }
FOR QUIZ
// Java Program to Get a Stream Consisting of Elements import java.util.stream.Stream; public class Example { public static void main(String[] args){ Stream<String> stream = Stream.of("Class", "FOR", "Quiz", "WaytoClass"); stream.filter(str -> str.endsWith("s")) .forEach(System.out::println); } }
Class WaytoClass
改善我們的Java程式碼功能的一種方法是利用filter()方法。與強製或方法論相反。然而,在使用filter()函數時需要記住一些事情。
例如,將多個過濾器方法連結在一起可能會導致程式碼運行緩慢。這是因為可能會建立一個滿足謂詞條件的元素的新流作為中間操作。因此,減少filter()呼叫次數的關鍵是將謂詞合併成一個句子。
以上是Java Stream API Filter(過濾器)的詳細內容。更多資訊請關注PHP中文網其他相關文章!