Примеры действий, которые не приведены на официальной странице Lambdaj, но скрыты каждый раз, когда вы звоните sort
Lambdaj создает компаратор для данного аргумента.Ниже приведен пример сортировки по нескольким атрибутам.
Сортировка:
public static void main(String... args) {
final Comparator byName = new ArgumentComparator(on(Fruit.class).getName());
final Comparator byColor = new ArgumentComparator(on(Fruit.class).getColor());
final Comparator orderBy = ComparatorUtils.chainedComparator(byName, byColor);
final List<Fruit> unsorted = Arrays.asList(...);
final List<Fruit> sorted = sort(unsorted, on(Fruit.class), orderBy);
System.out.println(sorted);
}
Недостатки:
Существует один сторонний метод, не использующий лямбдадж.ComparatorUtils.chainedComparator
- это из коллекции Apache Commons.Если у вас нет этого в качестве зависимости в вашем проекте, вы можете написать свой собственный.он просто перебирает все компараторы, пока не вернется ноль.