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;
}
}
