La secuencia de Java proporciona un método filter() para filtrar los elementos de la secuencia según un predicado determinado. Supongamos que desea obtener solo elementos pares de su lista, entonces puede hacerlo fácilmente con la ayuda del método de filtro.
Este método toma el predicado como argumento y devuelve una secuencia compuesta por elementos resultantes.
Firma
La firma del método Stream filter() se proporciona a continuación:
Stream filter(Predicate predicate)
Parámetro
predicado: Toma la referencia del predicado como argumento. Predicate es una interfaz funcional. Entonces, también puedes pasar la expresión lambda aquí.
Devolver
Devuelve una nueva secuencia.
Ejemplo de filtro Java Stream()
En el siguiente ejemplo, obtenemos e iteramos datos filtrados.
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 } }
Producción:
90000.0
Ejemplo 2 del filtro Java Stream()
En el siguiente ejemplo, obtenemos datos filtrados como una lista.
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); } }
Producción:
[90000.0]