sortBy в порядке убывания в Lightweight-Stream-API - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь использовать Lightweight-Stream-API для поддержки менее API-24. Работает в порядке возрастания, но как сделать это по убыванию sortBy().

 List<Person> persons = Arrays.asList(
                new Person("Bill", 30),
                new Person("Ali", 25),
                new Person("Apula", 40),
                new Person("Calin", 18),
                new Person("Adomin", 20),
                new Person("Amkita", 35),
                new Person("Della", 40)
        );

List<Person> result = com.annimon.stream.Stream.of(persons)
                        .filter(x -> x.getName().startsWith("A"))
                        .sortBy(Person::getAge) // how to make it descending?
                        .limit(2)
                        .toList();

1 Ответ

0 голосов
/ 24 апреля 2018

Раньше не слышал или не использовал эту библиотеку, но некоторые исследования показывают, что вы можете просто изменить свой метод sortBy на:

.sortBy(p -> -p.getAge())...

или

.sortBy(new Function<Person, Integer>(){
      @Override
       public Integer apply(Person p){ 
           return -p.getAge();
      }
})...

Это похоже на последний метод испытаний здесь:

https://github.com/aNNiMON/Lightweight-Stream-API/blob/master/stream/src/test/java/com/annimon/stream/streamtests/SortByTest.java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...