Le flux Java fournit une méthode filter() pour filtrer les éléments du flux en fonction d'un prédicat donné. Supposons que vous souhaitiez obtenir uniquement des éléments pairs de votre liste, vous pouvez le faire facilement à l'aide de la méthode de filtrage.
Cette méthode prend le prédicat comme argument et renvoie un flux composé d'éléments résultants.
Signature
La signature de la méthode Stream filter() est donnée ci-dessous :
Stream filter(Predicate predicate)
Paramètre
prédicat: Il prend la référence Predicate comme argument. Le prédicat est une interface fonctionnelle. Ainsi, vous pouvez également transmettre l'expression lambda ici.
Retour
Il renvoie un nouveau flux.
Exemple de filtre Java Stream()
Dans l'exemple suivant, nous récupérons et itérons des données filtrées.
import java.util.*; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class JavaStreamExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); productsList.stream() .filter(p ->p.price> 30000) // filtering price .map(pm ->pm.price) // fetching price .forEach(System.out::println); // iterating price } }
Sortir:
gestion des chaînes en C++
90000.0
Exemple 2 de filtre Java Stream()
Dans l'exemple suivant, nous récupérons les données filtrées sous forme de liste.
import java.util.*; import java.util.stream.Collectors; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class JavaStreamExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); List pricesList = productsList.stream() .filter(p ->p.price> 30000) // filtering price .map(pm ->pm.price) // fetching price .collect(Collectors.toList()); System.out.println(pricesList); } }
Sortir:
[90000.0]