Thursday, 8 June 2017

Lambda expression in java[How to sort the list of person by name 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 + "]";
    }

}
NonLambdaDemo.java 
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * Before JDK 8
 * 
 * With out lambda expression how to sort the list of person by name
 * 
 */
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("------------Before Sort by name---------");

        printAll(personList);

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

        /*
         * Sort list by Name,Before JDK 8
         */

        Collections.sort(personList, new Comparator<Person>()
        {
            @Override
            public int compare(Person p1, Person p2)
            {
                return p1.getName().compareTo(p2.getName());
            }
        });

        System.out.println("\n------------After Sort by name---------");
        /*
         * Create a method that prints all elements in the list.
         */

        printAll(personList);

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

    }

    private static void printAll(List<Person> personList)
    {
        for (Person person : personList)
        {
            System.out.println(person);
        }

    }
}
Output 
------------Before Sort by name---------
Person [name=Carla, age=33]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Ajay, age=31]
----------------------------------------

------------After Sort by name---------
Person [name=Ajay, age=31]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Carla, age=33]
----------------------------------------
LambdaDemo.java
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * JDK 8
 * 
 * With lambda expression how to sort the list of person by name.
 * 
 */

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("------------Before Sort by name---------");

        printAll(personList);

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

        /*
         * Sort list by Name, with JDK 8
         */

        Collections.sort(personList,
                (p1, p2) -> p1.getName().compareTo(p2.getName()));      
        
        
        System.out.println("\n------------After Sort by name---------");
        /*
         * Create a method that prints all elements in the list.
         */

        printAll(personList);

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

    }

    private static void printAll(List<Person> personList)
    {
        for (Person person : personList)
        {
            System.out.println(person);
        }

    }
}
Output
------------Before Sort by name---------
Person [name=Carla, age=33]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Ajay, age=31]
----------------------------------------

------------After Sort by name---------
Person [name=Ajay, age=31]
Person [name=Balu, age=32]
Person [name=Bharth, age=40]
Person [name=Carla, age=33]
----------------------------------------
Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/LambdaDemo_sort_pl_App.zip?attredirects=0&d=1

No comments:

Post a Comment