Java 8 : Sorting of elements

Spread the love

Below is the source code for sorting elements using Java 8 Lambda Expressions.

import java.util.*;
import java.util.stream.*;

class Student {

    private String name;
    private int empId;
    
    public Student(String name, int empId) {
        super();
        this.name = name;
        this.empId = empId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return empId;
    }
    public void setId(int empId) {
        this.empId = empId;
    }
}

public class Java8SortingExample {
    public static void main(String args[]) {

      List<String> namesList = Java8SortingExample.getNamesList();
      namesList.sort((a,b) -> a.length()-b.length());
      System.out.println("Sorting elements by length : "+namesList);
      
      namesList.sort(Comparator.comparing(String::length));
      System.out.println("Sorting elements by length Using Comparator: "+namesList);
      
      List<String> sortedNamesList = namesList.stream().sorted((i1,i2) -> i1.compareTo(i2)).collect(Collectors.toList());
      System.out.println("Sorting elements by name : "+sortedNamesList);
      
      List<Student> studList = Java8SortingExample.createStudList();
      
      studList.sort(Comparator.comparing(s ->s.getName()));
      List<String> sortedStudList = studList.stream().map(Student::getName).collect(Collectors.toList());
      System.out.println("Sorting student objects by name : "+sortedStudList);
      
    }
    
    private static List<String> getNamesList(){
        
        List<String> list = new ArrayList<String>();
        list.add("Nathan");
        list.add("Chris");
        list.add("David");
        list.add("James");
        list.add("Mike");
        
        return list;
    }
    
    public static List<Student> createStudList()
    {
        List<Student> studList=new ArrayList<Student>();
    
        Student s1=new Student("Aalo",215013);    
        Student s2=new Student("Sumo",215012);
        Student s3=new Student("Shiji",222432);
        Student s4=new Student("Lufo",310131);
        Student s5=new Student("Zishi",310135);
    
        studList.add(s1);
        studList.add(s2);
        studList.add(s3);
        studList.add(s4);
        studList.add(s5);
    
        return studList;
    }
    
}