Вы можете попробовать решить эти задачи с помощью LambdaJ, если вы используете предыдущие версии для java 8. Вы можете найти его здесь: http://code.google.com/p / lambdaj /
Здесь у вас есть пример:
Сортировать Iterative
List sortedByAgePersons = new ArrayList(persons);
Collections.sort(sortedByAgePersons, new Comparator() {
public int compare(Person p1, Person p2) {
return Integer.valueOf(p1.getAge()).compareTo(p2.getAge());
}
});
Сортировать по LambdaJ
List sortedByAgePersons = sort(persons, on(Person.class).getAge());
Конечно, такая красота влияет на производительность (в среднем 2 раза), но вы можете найти более читаемый код?
Collections.sort(persons, (p1, p2) -> p1.getAge().compareTo(p2.getAge()));
//or
persons.sort((p1, p2) -> p1.getAge().compareTo(p2.getAge()));