Easysort
Что такое Arrays.sort vs Collections.sort?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Arrays.sort(array) — для массивов: примитивы используют Dual-Pivot Quicksort (avg O(n log n), worst O(n²)), объекты — TimSort (stable, O(n log n) worst). Collections.sort(list) — делегирует в List.sort, использует TimSort (stable).
int[] nums = {3, 1, 2};
Arrays.sort(nums); // [1, 2, 3]
List<String> list = List.of("b", "a", "c");
list.sort(Comparator.naturalOrder()); // List.sort (Java 8 default method)
Integer[] arr = {3, 1, 2};
Arrays.parallelSort(arr); // Java 8, через ForkJoinPool
// Вспомогательные
int idx = Arrays.binarySearch(nums, 2); // на отсортированном
int[] copy = Arrays.copyOf(nums, 5);Arrays.asList(T...)— view массива как List (fixed size);Arrays.equals,Arrays.hashCode,Arrays.deepEquals(вложенные массивы);Arrays.setAll(arr, i -> i * 2)— через IntFunction.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.