вернуть список, отсортированный по количеству, а для одинакового количества, по артикулу, без учета регистра

Мне нужно в методе, вернуть список объектов, отсортированных по параметру "количество"(available), если параметр "количество" одинаков для нескольких объектов списка, - провести сортировку по параметру "артикул"(number), без учёта регистра. Метод с уже проведённой сортировкой по параметру количество.

public List<Goods> sortByAvailabilityAndNumber() {
    List<Goods> result = list.stream()
            .sorted(Comparator.comparingInt(e -> e.available))
            .collect(Collectors.toList());//
    return result;
}

Ответы (1 шт):

Автор решения: Roman Konoval

Вам нужно воспользоваться методами построения компараторов для лексикографического сравнения для нескольких компараторов:

public List<Goods> sortByAvailabilityAndNumber() {
    List<Goods> result = list.stream()
            .sorted(Comparator.comparingInt(e -> e.available)
                  .thenComparing(e -> e.number.toLowerCase()))
            .collect(Collectors.toList());//
    return result;
}
→ Ссылка