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 подскажет развёрнутый ответ в реальном времени.