Как я могу использовать потоки Java 8 для сортировки ArrayList объектов по примитивному члену int? - PullRequest
0 голосов
/ 01 сентября 2018

Вот пример класса. Я знаю, что проще всего было бы изменить члены с примитивного типа int на объект Integer и использовать stream / lambda / sorted, но могут быть причины иметь только примитивный тип int, например пробел. Как я могу использовать потоковый API для сортировки List<DateRange> по int member startRange?

List<DateRange> listToBeSorted = new ArrayList<DateRange>();


static private class DateRange
{
    private int startRange ;
    private int endRange ;
    public int getStartRange() {
        return startRange;
    }
    public void setStartRange(int startRange) {
        this.startRange = startRange;
    }
    public int getEndRange() {
        return endRange;
    }
    public void setEndRange(int endRange) {
        this.endRange = endRange;
    }
}

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Я знаю, что вы попросили способ сделать это с потоками, но если вы согласны с сортировкой исходного списка на месте, вам не нужны потоки для этого. Просто используйте метод List.sort:

listToBeSorted.sort(Comparator.comparingInt(DateRange::getStartRange));
0 голосов
/ 01 сентября 2018

Вы можете сделать это так,

List<DateRange> sortedList = listToBeSorted.stream()
    .sorted(Comparator.comparingInt(DateRange::getStartRange))
    .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...