Tuesday 11 July 2017

How to filter the collection with and without Java 8 Stream - map method | Java 8 streams tutorial


Click here to watch in Youtube : 
https://www.youtube.com/watch?v=a46AkNf2Tok&list=UUhwKlOVR041tngjerWxVccw

Product.java
class Product
{
    private int id;
    private String name;
    private int price;

    public Product(int id, String name, int price)
    {
        super();
        this.id = id;
        this.name = name;
        this.price = price;
    }

    public int getId()
    {
        return id;
    }

    public void setId(int id)
    {
        this.id = id;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public int getPrice()
    {
        return price;
    }

    public void setPrice(int price)
    {
        this.price = price;
    }

}
FilterDemo.java
import java.util.ArrayList;
import java.util.List;

/**
 * Filtering Collection without using Stream:
 *
 * In this example, We are filtering data without using
 * stream. This approach we are used before the stream package was
 * released.
 *
 */

public class FilterDemo
{
    public static void main(String[] args)
    {
        List<Product> productList = new ArrayList<Product>();

        // Adding Products
        productList.add(new Product(1, "Sony mobile", 25000));
        productList.add(new Product(2, "Lenovo mobile", 15000));
        productList.add(new Product(3, "Nokia mobile", 10000));
        productList.add(new Product(4, "Samsung mobile", 40000));

        List<String> filteredProductList = new ArrayList<String>();

        for (Product product : productList)
        {

            /*
             * Filter the product, whose price is less than 20000 and
             * add the product name in filteredProductList.
             *
             */
            if (product.getPrice() < 20000)
            {
                // Adding product name
                filteredProductList.add(product.getName());
            }
        }
        System.out.println(filteredProductList);
    }

}
Output
[Lenovo mobile, Nokia mobile]
StreamDemo.java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * Filtering Collection by using Stream:
 * 
 * Here, we are filtering data by using stream. You can see that code
 * is optimized and maintained. Stream provides fast execution.
 *
 */

public class StreamDemo
{
    public static void main(String[] args)
    {
        List<Product> productList = new ArrayList<Product>();

        // Adding Products
        productList.add(new Product(1, "Sony mobile", 25000));
        productList.add(new Product(2, "Lenovo mobile", 15000));
        productList.add(new Product(3, "Nokia mobile", 10000));
        productList.add(new Product(4, "Samsung mobile", 40000));

        List<String> filteredProductList = productList.stream()
                .filter(p -> p.getPrice() < 20000)// Filter the product, whose price is less than 20000
                .map(p -> p.getName()) // fetching Name
                .collect(Collectors.toList()); // collecting as list

        System.out.println(filteredProductList);
    }

}
Output
[Lenovo mobile, Nokia mobile]
Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/StreamDemo_filter_productList_map_app.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/StreamDemo_filter_productList_map_app

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/64bafbc8f43e8865b0cd21a106383d7ae583fbc8/BasicJava/StreamDemo_filter_productList_map_app/?at=master

See also:

  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • No comments:

    Post a Comment