logo

Java Stream -suodatin

Java-virta tarjoaa menetelmän filter() stream-elementtien suodattamiseksi annetun predikaatin perusteella. Oletetaan, että haluat saada luettelostasi vain parilliset elementit, niin voit tehdä tämän helposti suodatusmenetelmän avulla.

Tämä menetelmä käyttää predikaattia argumenttina ja palauttaa tuloksena olevista elementeistä koostuvan virran.


Allekirjoitus

Stream filter() -menetelmän allekirjoitus on annettu alla:

 Stream filter(Predicate predicate) 

Parametri

predikaatti: Se käyttää predikaattiviittausta argumenttina. Predikaatti on toiminnallinen käyttöliittymä. Joten voit myös välittää lambda-lausekkeen täällä.

Palata

Se palauttaa uuden streamin.


Java Stream filter() esimerkki

Seuraavassa esimerkissä haetaan ja iteroidaan suodatettua dataa.

 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 } } 

Lähtö:

 90000.0 

Java Stream filter() esimerkki 2

Seuraavassa esimerkissä haemme suodatettuja tietoja luettelona.

 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); } } 

Lähtö:

 [90000.0]