Упорядочивание коллекции целых чисел

Создайте отсортированную копию через 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 из условия неизменяем, поэтому попытка отсортировать его на месте завершится ошибкой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее