Tuesday 3 October 2017

How to sort the person based on age in Asc order using Java 8 Stream | Streams in Java 8


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

Person.java
enum Gender
{
    MALE, FEMALE
}

public class Person implements Comparable<Person>
{
    private String name;
    private String email;
    private Gender gender;
    private int age;

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

    public String getName()
    {
        return name;
    }

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

    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    public Gender getGender()
    {
        return gender;
    }

    public void setGender(Gender gender)
    {
        this.gender = gender;
    }

    public int getAge()
    {
        return age;
    }

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

    public int compareTo(Person another)
    {
        return this.age - another.getAge();
    }

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

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

public class StreamSortDemo
{
    public static void main(String[] args)
    {
        List<Person> personList = new ArrayList<>();

        personList.add(new Person("Alice", "alice@gmail.com", Gender.FEMALE, 16));
        personList.add(new Person("Bob", "bob@gmail.com", Gender.MALE, 15));
        personList.add(new Person("Carol", "carol@gmail.com", Gender.FEMALE, 23));
        personList.add(new Person("David", "david@gmail.com", Gender.MALE, 19));
        personList.add(new Person("Eric", "eric@gmail.com", Gender.MALE, 26));

        /*
         * The Stream API provides two overloads of the sorted operation that
         * returns a new stream consisting elements sorted according to natural
         * order or by a specified comparator:
         *
         * 1.sorted(): sorts by natural order
         * 2.sorted(comparator): sorts by a comparator
         *
         * The following code returns a stream of persons who are sorted by
         * their age into ascending order:
         *
         */

        System.out.println("----------Sorted by Age-------------------");

        personList.stream().sorted()
                .forEach(p -> System.out.println(p));


        System.out.println("\n----------Sorted by Name-------------------");

        /*
         * The following code shows how to use a specified comparator to return
         * a stream of persons who are sorted by their name:
         */
        personList.stream()
                .sorted((p1, p2) -> p1.getName().compareTo(p2.getName()))
                .forEach(System.out::println);
    }

}
Output
----------Sorted by Age-------------------
Person [name=Bob, gender=MALE, age=15]
Person [name=Alice, gender=FEMALE, age=16]
Person [name=David, gender=MALE, age=19]
Person [name=Carol, gender=FEMALE, age=23]
Person [name=Eric, gender=MALE, age=26]

----------Sorted by Name-------------------
Person [name=Alice, gender=FEMALE, age=16]
Person [name=Bob, gender=MALE, age=15]
Person [name=Carol, gender=FEMALE, age=23]
Person [name=David, gender=MALE, age=19]
Person [name=Eric, gender=MALE, age=26]

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/StreamDemo_sorted_name_age_comp.zip?attredirects=0&d=1

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

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/be359fe3814dad173cc81feb4c27726905fff42e/BasicJava/StreamDemo_sorted_name_age_comp/?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