Java 8 Example - Sort without Lambda

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]