1- Sort by name (ascending)
package com.learnwithrup;
public class Employee {
private int id;
private String name;
private String job;
private double salary;
public Employee(int id, String name, String job, double salary) {
super();
this.id = id;
this.name = name;
this.job = job;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", job=" + job
+ ", salary=" + salary + "]";
}
}
package com.learnwithrup;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class EmployeeSortExample1 {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "nisha patel", "developer", 50000));
employees.add(new Employee(2, "arjun rao", "designer", 55000));
employees.add(new Employee(3, "rahul sharma", "manager", 60000));
employees.add(new Employee(4, "vikas gupta", "analyst", 52000));
employees.add(new Employee(5, "rohan khanna", "tester", 48000));
employees.add(new Employee(6, "deepak mishra", "developer", 50500));
List<Employee> sortedEmployees = employees.stream()
.sorted(Comparator.comparing(Employee::getName)).toList();
sortedEmployees.forEach(System.out::println);
}
}
Output:
Employee [eid=2, eName=arjun rao, job=designer, salary=55000.0]
Employee [eid=6, eName=deepak mishra, job=developer, salary=50500.0]
Employee [eid=1, eName=nisha patel, job=developer, salary=50000.0]
Employee [eid=3, eName=rahul sharma, job=manager, salary=60000.0]
Employee [eid=5, eName=rohan khanna, job=tester, salary=48000.0]
Employee [eid=4, eName=vikas gupta, job=analyst, salary=52000.0]
2- Sort by name (descending)
package com.learnwithrup;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class EmployeeSortExample1 {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "nisha patel", "developer", 50000));
employees.add(new Employee(2, "arjun rao", "designer", 55000));
employees.add(new Employee(3, "rahul sharma", "manager", 60000));
employees.add(new Employee(4, "vikas gupta", "analyst", 52000));
employees.add(new Employee(5, "rohan khanna", "tester", 48000));
employees.add(new Employee(6, "deepak mishra", "developer", 50500));
List<Employee> sortedEmployees = employees.stream()
.sorted(Comparator.comparing(Employee::getName).reversed())
.toList();
sortedEmployees.forEach(System.out::println);
}
}
Output:
Employee [eid=4, eName=vikas gupta, job=analyst, salary=52000.0]
Employee [eid=5, eName=rohan khanna, job=tester, salary=48000.0]
Employee [eid=3, eName=rahul sharma, job=manager, salary=60000.0]
Employee [eid=1, eName=nisha patel, job=developer, salary=50000.0]
Employee [eid=6, eName=deepak mishra, job=developer, salary=50500.0]
Employee [eid=2, eName=arjun rao, job=designer, salary=55000.0]
3- Sort by name with null values (ascending & descending)
package com.learnwithrup;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class EmployeeSortExample2 {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "nisha patel", "developer", 50000));
employees.add(new Employee(2, "arjun rao", "designer", 55000));
employees.add(new Employee(3, "rahul sharma", "manager", 60000));
employees.add(new Employee(4, "priyanka chopra", "analyst", 52000));
employees.add(new Employee(5, "rohan khanna", "tester", 48000));
employees.add(new Employee(6, null, "developer", 50500));
employees.add(new Employee(7, "amit agarwal", "designer", 55500));
employees.add(new Employee(8, null, "manager", 60500));
employees.add(new Employee(9, "vikas gupta", "analyst", 52500));
// ascendingOrderByName
List<Employee> ascendingOrderByName = employees.stream()
.sorted(Comparator.comparing(Employee::getName,
Comparator.nullsLast(Comparator.naturalOrder())))
.toList();
// descendingOrderByName
List<Employee> descendingOrderByName = employees
.stream().sorted(
Comparator
.comparing(Employee::getName,
Comparator.nullsLast(
Comparator.naturalOrder()))
.reversed())
.toList();
ascendingOrderByName.forEach(System.out::println);
System.out.println("----------------------------------------------");
descendingOrderByName.forEach(System.out::println);
}
}
Output:
Employee [id=7, name=amit agarwal, job=designer, salary=55500.0]
Employee [id=2, name=arjun rao, job=designer, salary=55000.0]
Employee [id=1, name=nisha patel, job=developer, salary=50000.0]
Employee [id=4, name=priyanka chopra, job=analyst, salary=52000.0]
Employee [id=3, name=rahul sharma, job=manager, salary=60000.0]
Employee [id=5, name=rohan khanna, job=tester, salary=48000.0]
Employee [id=9, name=vikas gupta, job=analyst, salary=52500.0]
Employee [id=6, name=null, job=developer, salary=50500.0]
Employee [id=8, name=null, job=manager, salary=60500.0]
----------------------------------------------
Employee [id=6, name=null, job=developer, salary=50500.0]
Employee [id=8, name=null, job=manager, salary=60500.0]
Employee [id=9, name=vikas gupta, job=analyst, salary=52500.0]
Employee [id=5, name=rohan khanna, job=tester, salary=48000.0]
Employee [id=3, name=rahul sharma, job=manager, salary=60000.0]
Employee [id=4, name=priyanka chopra, job=analyst, salary=52000.0]
Employee [id=1, name=nisha patel, job=developer, salary=50000.0]
Employee [id=2, name=arjun rao, job=designer, salary=55000.0]
Employee [id=7, name=amit agarwal, job=designer, salary=55500.0]
4- Sort by Salary (Ascending & Descending)
package com.learnwithrup;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class EmployeeSortExample3 {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "nisha patel", "developer", 50000));
employees.add(new Employee(2, "arjun rao", "designer", 55000));
employees.add(new Employee(3, "rahul sharma", "manager", 60000));
employees.add(new Employee(4, "vikas gupta", "analyst", 52000));
employees.add(new Employee(5, "rohan khanna", "tester", 48000));
employees.add(new Employee(6, "deepak mishra", "developer", 50500));
// ascendingOrderBySalary
List<Employee> ascendingOrderBySalary = employees.stream()
.sorted(Comparator.comparing(Employee::getSalary)).toList();
// descendingOrderSalary
List<Employee> descendingOrderSalary = employees.stream()
.sorted(Comparator.comparing(Employee::getSalary).reversed())
.toList();
ascendingOrderBySalary.forEach(System.out::println);
System.out.println("----------------------------------------------");
descendingOrderSalary.forEach(System.out::println);
}
}
Output:
Employee [id=5, name=rohan khanna, job=tester, salary=48000.0]
Employee [id=1, name=nisha patel, job=developer, salary=50000.0]
Employee [id=6, name=deepak mishra, job=developer, salary=50500.0]
Employee [id=4, name=vikas gupta, job=analyst, salary=52000.0]
Employee [id=2, name=arjun rao, job=designer, salary=55000.0]
Employee [id=3, name=rahul sharma, job=manager, salary=60000.0]
----------------------------------------------
Employee [id=3, name=rahul sharma, job=manager, salary=60000.0]
Employee [id=2, name=arjun rao, job=designer, salary=55000.0]
Employee [id=4, name=vikas gupta, job=analyst, salary=52000.0]
Employee [id=6, name=deepak mishra, job=developer, salary=50500.0]
Employee [id=1, name=nisha patel, job=developer, salary=50000.0]
Employee [id=5, name=rohan khanna, job=tester, salary=48000.0]
5- Sort by name and salary (Ascending & Descending)
package com.learnwithrup;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class EmployeeSortExample4 {
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "nisha patel", "developer", 50000));
employees.add(new Employee(2, "arjun rao", "designer", 55000));
employees.add(new Employee(3, "rahul sharma", "manager", 60000));
employees.add(new Employee(4, "vikas gupta", "analyst", 52000));
employees.add(new Employee(5, "rohan khanna", "tester", 48000));
employees.add(new Employee(6, "deepak mishra", "developer", 50500));
// ascendingOrderBySalary
List<Employee> ascendingOrderBySalary = employees.stream()
.sorted(Comparator.comparing(Employee::getName)
.thenComparing(Employee::getSalary))
.toList();
// descendingOrderSalary
List<Employee> descendingOrderSalary = employees.stream()
.sorted(Comparator.comparing(Employee::getName)
.thenComparing(Employee::getSalary).reversed())
.toList();
ascendingOrderBySalary.forEach(System.out::println);
System.out.println("----------------------------------------------");
descendingOrderSalary.forEach(System.out::println);
}
}
Output:
Employee [id=2, name=arjun rao, job=designer, salary=55000.0]
Employee [id=6, name=deepak mishra, job=developer, salary=50500.0]
Employee [id=1, name=nisha patel, job=developer, salary=50000.0]
Employee [id=3, name=rahul sharma, job=manager, salary=60000.0]
Employee [id=5, name=rohan khanna, job=tester, salary=48000.0]
Employee [id=4, name=vikas gupta, job=analyst, salary=52000.0]
----------------------------------------------
Employee [id=4, name=vikas gupta, job=analyst, salary=52000.0]
Employee [id=5, name=rohan khanna, job=tester, salary=48000.0]
Employee [id=3, name=rahul sharma, job=manager, salary=60000.0]
Employee [id=1, name=nisha patel, job=developer, salary=50000.0]
Employee [id=6, name=deepak mishra, job=developer, salary=50500.0]
Employee [id=2, name=arjun rao, job=designer, salary=55000.0]