Thursday, 8 June 2017

Java Tutorial: Lambda expression in java[How to filter the list of person using lambda expression] ~ foundjava


Person.java

public class Person
{
    private String name;
    private int age;

    public Person(String name, int age)
    {
        super();
        this.name = name;
        this.age = age;
    }

    public String getName()
    {
        return name;
    }

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

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    @Override
    public String toString()
    {
        return "Person [name=" + name + ", age=" + age + "]";
    }

}
PersonFilter.java
@FunctionalInterface
public interface PersonFilter
{
    public boolean filter(Person person);
}
NonLambdaDemo.java
import java.util.Arrays;
import java.util.List;

public class NonLambdaDemo
{
    public static void main(String[] args)
    {
        List<Person> personList = Arrays.asList(
                new Person("Carla", 33), new Person("Balu", 32),
                new Person("Bharth", 40), new Person("Ajay", 31));

        System.out.println("------------Name Starts with B---------");

        PersonFilter personFilter = new PersonFilter()
        {
            @Override
            public boolean filter(Person person)
            {
                return person.getName().startsWith("B");
            }
        };

        printNameBeginWith_B(personList, personFilter);
        System.out.println("---------------------------------");

    }

    /*
     * Method to print all people that have name begins with B.
     */
    private static void printNameBeginWith_B(List<Person> personList,
                                                   PersonFilter personFilter)
    {
        for (Person person : personList)
        {
            if (personFilter.filter(person))
            {
                System.out.println(person);
            }
        }

    }

}
Output
------------Name Starts with B---------
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
---------------------------------
LambdaDemo.java
import java.util.Arrays;
import java.util.List;

public class LambdaDemo
{
    public static void main(String[] args)
    {
        List<Person> personList = Arrays.asList(
                new Person("Carla", 33), new Person("Balu", 32),
                new Person("Bharth", 40), new Person("Ajay", 31));

        System.out.println("------------Name Starts with B---------");
        
        PersonFilter personFilter = person -> person.getName().startsWith("B");
        printNameBeginWith_B(personList,personFilter);

        System.out.println("----------------------------------------");

    }

    /*
     * Method to print all people that have name begins with B.
     */
    private static void printNameBeginWith_B(List<Person> personList,
                                                            PersonFilter personFilter)
    {
        for (Person person : personList)
        {
            if (personFilter.filter(person))
            {
                System.out.println(person);
            }
        }

    }

}
Output
------------Name Starts with B---------
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
----------------------------------------
Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/LambdaDemo_filter_person_App.zip?attredirects=0&d=1

No comments:

Post a Comment