Example to compare the Developer objects using their age. Normally, you use Collections.sort and pass an anonymous Comparator class like this :
package com.javaschool.java8;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TestSorting {
public static void main(String[] args) {
List listDevs = getDevelopers();
System.out.println("Before Sort");
for (Developer developer : listDevs) {
System.out.println(developer);
}
//sort by age
Collections.sort(listDevs, new Comparator() {
@Override
public int compare(Developer o1, Developer o2) {
return o1.getAge() - o2.getAge();
}
});
System.out.println("After Sort");
for (Developer developer : listDevs) {
System.out.println(developer);
}
}
private static List getDevelopers() {
List result = new ArrayList();
result.add(new Developer("java", new BigDecimal("70000"), 33));
result.add(new Developer("school", new BigDecimal("80000"), 20));
result.add(new Developer("java8", new BigDecimal("100000"), 10));
result.add(new Developer("blog", new BigDecimal("170000"), 55));
return result;
}
}
Output:
Before Sort
Developer [name=java, salary=70000, age=33]
Developer [name=school, salary=80000, age=20]
Developer [name=java8, salary=100000, age=10]
Developer [name=blog, salary=170000, age=55]
After Sort
Developer [name=java, salary=100000, age=10]
Developer [name=school, salary=80000, age=20]
Developer [name=java8, salary=70000, age=33]
Developer [name=blog, salary=170000, age=55]