Создайте отсортированную копию через stream.sorted() либо ArrayList с последующим sort. TreeSet неэквивалентен списку, поскольку дополнительно удаляет дубликаты.
Упорядочивание коллекции целых чисел
Создайте отсортированную копию через stream.sorted() либо ArrayList с последующим sort. TreeSet неэквивалентен списку, поскольку дополнительно удаляет дубликаты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо отсортировать объект типа Collection<Integer> и сохранить полученный упорядоченный набор в отдельную переменную. Опишите и сравните возможные подходы к сортировке такой коллекции.
import java.util.Collection;
public class JetbulbInterview {
public static void main(String[] args) {
Collection<Integer> numbers = List.of(1, 5, -33, 0);
Collection<Integer> sortedNumbers =
}
}
Ответ
Создайте отсортированную копию через stream.sorted() либо ArrayList с последующим sort. TreeSet неэквивалентен списку, поскольку дополнительно удаляет дубликаты.
Collection<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(java.util.stream.Collectors.toList());
Результат: [-33, 0, 1, 5]. Исходная коллекция не меняется. Альтернатива: new ArrayList<>(numbers), затем sort(Integer::compareTo). Естественная сортировка не поддерживает null без специального Comparator. List.of из условия неизменяем, поэтому попытка отсортировать его на месте завершится ошибкой.