Java-stream biedt een methode filter() om stream-elementen te filteren op basis van een bepaald predikaat. Stel dat u alleen even elementen uit uw lijst wilt halen, dan kunt u dit eenvoudig doen met behulp van de filtermethode.
Deze methode neemt het predikaat als argument en retourneert een stroom bestaande uit resulterende elementen.
Handtekening
De handtekening van de Stream filter()-methode wordt hieronder gegeven:
Stream filter(Predicate predicate)
Parameter
predikaat: Er is een predikaatreferentie als argument nodig. Predikaat is een functionele interface. Je kunt hier dus ook de lambda-expressie doorgeven.
Opbrengst
Er wordt een nieuwe stream geretourneerd.
Voorbeeld van Java Stream-filter().
In het volgende voorbeeld halen we gefilterde gegevens op en herhalen we deze.
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 } }
Uitgang:
90000.0
Java Stream filter() voorbeeld 2
In het volgende voorbeeld halen we gefilterde gegevens op als een lijst.
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); } }
Uitgang:
[90000.0]