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]