sortedにComparator
Streamで独自ソートするにはsortedにComparatorを渡してやればOK。
List<Person> personsSortedByName = getPersons().stream()
.sorted(new Comparator<Person>() {
@Override
public int compare(Person person1, Person person2) {
return person1.getName().compareTo(person2.getName());
}
}).collect(Collectors.toList);
Lambdaで書けます
List<Person> personsSortedByName = getPersons().stream()
.sorted((person1, person2) -> person1.getName().compareTo(person2.getName()))
.collect(Collectors.toList);
Comparator#comparing
が使えます
List<Person> personsSortedByName = getPersons().stream()
.sorted(Comparator.comparing(Person::getName))
.collect(Collectors.toList);
逆順にしたい
逆順にしたいときは Comparator#reversed
を使えばOKです。
List<Person> personsSortedByName = getPersons().stream()
.sorted(Comparator.comparing(Person::getName).reversed())
.collect(Collectors.toList);
参考
www.task-notes.com