O fluxo Java fornece um método filter() para filtrar os elementos do fluxo com base em um determinado predicado. Suponha que você queira obter apenas elementos pares de sua lista, então você pode fazer isso facilmente com a ajuda do método de filtro.
Este método usa o predicado como argumento e retorna um fluxo composto por elementos resultantes.
Assinatura
A assinatura do método Stream filter() é fornecida abaixo:
Stream filter(Predicate predicate)
Parâmetro
predicado: Leva referência de predicado como argumento. Predicado é uma interface funcional. Então, você também pode passar a expressão lambda aqui.
Retornar
Ele retorna um novo fluxo.
Exemplo de filtro Java Stream()
No exemplo a seguir, estamos buscando e iterando dados 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 } }
Saída:
90000.0
Filtro Java Stream() exemplo 2
No exemplo a seguir, estamos buscando dados filtrados como uma 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); } }
Saída:
[90000.0]