1). Create a Employee class:
public class Employee {
private String name;
private int age;
public Employee(String name, int age)
{
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 "name:"+this.name+", age:"+this.age;
}
}
2). The sorting is done in EmployeeSorting
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class EmployeeSorting {
/**
* This method will create list of employees
* @return employees
*/
private static List < Employee > getEmployeeList() {
List < Employee > employees = new ArrayList < Employee > ();
employees.add(new Employee("Andreas Ehmich", 33));
employees.add(new Employee("Michael Andrew", 54));
employees.add(new Employee("Chamuel Matthew", 45));
employees.add(new Employee("Tiger Khan", 27));
employees.add(new Employee("Himaanshu Shuklaa", 32));
return employees;
}
/**
* This class will sort the list of employees using Collections.sort.
* We are passing anonymous Comparator class for sorting.
*/
public static void sortWithoutLamda() {
List < Employee > employees = getEmployeeList();
System.out.println("Printing employees before sorting..");
for (Employee employee : employees) {
System.out.println(employee);
}
/* Sorting without Lamda */
System.out.println("Sorting employees based on the names..");
Collections.sort(employees, new Comparator < Employee > () {
@Override
public int compare(Employee employee1, Employee employee2) {
return employee1.getName().compareTo(employee2.getName());
}
});
System.out.println("Printing employees after sorting on the basis of name..");
for (Employee employee : employees) {
System.out.println(employee);
}
}
/**
* In this method we will directly use Java 8's sort method, instead of Collections.sort.
* In the sort method, instead of passing anonymous Comparator class, Lamda expression is used.
* For printing the employees, forEach method of Java 8 is used.
*/
public static void sortWithLamda() {
List < Employee > employees = getEmployeeList();
System.out.println("Printing employees before sorting..");
for (Employee employee : employees) {
System.out.println(employee);
}
/* Sorting with Lamda */
System.out.println("Sorting employees based on the names using Lamda expression..");
employees.sort((employee1, employee2)- > employee1.getName().compareTo(employee2.getName()));
System.out.println("Printing employees using Lamda expression after sorting on the basis of name..");
employees.forEach((employee)- > System.out.println(employee));
System.out.println("Sorting employees based on the age using Lamda expression..");
employees.sort((employee1, employee2)- > employee1.getAge() -employee2.getAge());
System.out.println("Printing employees using Lamda expression after sorting on the basis of age..");
employees.forEach((employee)- > System.out.println(employee));
}
public static void main(String[] args)
{
System.out.println("##Sort without Lamda called..");
sortWithoutLamda();
System.out.println("##Sort with Lamda called..");
sortWithLamda();
}
}
Also Check : Java 8 Blogs
public class Employee {
private String name;
private int age;
public Employee(String name, int age)
{
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 "name:"+this.name+", age:"+this.age;
}
}
2). The sorting is done in EmployeeSorting
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class EmployeeSorting {
/**
* This method will create list of employees
* @return employees
*/
private static List < Employee > getEmployeeList() {
List < Employee > employees = new ArrayList < Employee > ();
employees.add(new Employee("Andreas Ehmich", 33));
employees.add(new Employee("Michael Andrew", 54));
employees.add(new Employee("Chamuel Matthew", 45));
employees.add(new Employee("Tiger Khan", 27));
employees.add(new Employee("Himaanshu Shuklaa", 32));
return employees;
}
/**
* This class will sort the list of employees using Collections.sort.
* We are passing anonymous Comparator class for sorting.
*/
public static void sortWithoutLamda() {
List < Employee > employees = getEmployeeList();
System.out.println("Printing employees before sorting..");
for (Employee employee : employees) {
System.out.println(employee);
}
/* Sorting without Lamda */
System.out.println("Sorting employees based on the names..");
Collections.sort(employees, new Comparator < Employee > () {
@Override
public int compare(Employee employee1, Employee employee2) {
return employee1.getName().compareTo(employee2.getName());
}
});
System.out.println("Printing employees after sorting on the basis of name..");
for (Employee employee : employees) {
System.out.println(employee);
}
}
/**
* In this method we will directly use Java 8's sort method, instead of Collections.sort.
* In the sort method, instead of passing anonymous Comparator class, Lamda expression is used.
* For printing the employees, forEach method of Java 8 is used.
*/
public static void sortWithLamda() {
List < Employee > employees = getEmployeeList();
System.out.println("Printing employees before sorting..");
for (Employee employee : employees) {
System.out.println(employee);
}
/* Sorting with Lamda */
System.out.println("Sorting employees based on the names using Lamda expression..");
employees.sort((employee1, employee2)- > employee1.getName().compareTo(employee2.getName()));
System.out.println("Printing employees using Lamda expression after sorting on the basis of name..");
employees.forEach((employee)- > System.out.println(employee));
System.out.println("Sorting employees based on the age using Lamda expression..");
employees.sort((employee1, employee2)- > employee1.getAge() -employee2.getAge());
System.out.println("Printing employees using Lamda expression after sorting on the basis of age..");
employees.forEach((employee)- > System.out.println(employee));
}
public static void main(String[] args)
{
System.out.println("##Sort without Lamda called..");
sortWithoutLamda();
System.out.println("##Sort with Lamda called..");
sortWithLamda();
}
}
Also Check : Java 8 Blogs
No comments:
Post a Comment