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);