Arrays.sort()
Сортирует массив на месте — по возрастанию или по заданному компаратору.
Доступно с: Java 1.2
Синтаксис
static void sort(int[] a)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| a | int[], T[], … | Массив, который нужно отсортировать. Есть вариант с диапазоном индексов (fromIndex, toIndex). |
| c | Comparator<? super T> | Порядок сортировки для массивов объектов. |
Возвращаемое значение
voidНичего — меняется сам массив.
Примеры
Числа и строки по возрастанию:
void main() {
int[] numbers = {5, 2, 9, 1};
Arrays.sort(numbers);
IO.println(Arrays.toString(numbers));
String[] names = {"Oleg", "anna", "Maria"};
Arrays.sort(names);
IO.println(Arrays.toString(names));
}Результат:
[1, 2, 5, 9]
[Maria, Oleg, anna]С компаратором — по убыванию и по длине:
void main() {
Integer[] numbers = {5, 2, 9, 1};
Arrays.sort(numbers, Comparator.reverseOrder());
IO.println(Arrays.toString(numbers));
String[] words = {"kiwi", "fig", "banana"};
Arrays.sort(words, Comparator.comparing(String::length));
IO.println(Arrays.toString(words));
}Результат:
[9, 5, 2, 1]
[fig, kiwi, banana]Примечания
Метод ничего не возвращает — int[] sorted = Arrays.sort(a) не скомпилируется. Строки сортируются по кодам символов: заглавные раньше строчных. Компаратор работает только с массивами объектов, поэтому для убывания нужен Integer[], а не int[].
См. также
- Arrays.binarySearch() — Быстро ищет значение в отсортированном массиве делением пополам.
- Arrays.toString() — Возвращает содержимое массива в виде строки [1, 2, 3].
- Comparator.comparing() — Создаёт компаратор, который сравнивает объекты по одному полю.
- Comparable.compareTo() — Задаёт естественный порядок объектов класса — по нему работают sort() и TreeSet.
Вопросы и ответы по теме
В учебнике
- Класс Arrays — Утилиты класса java.util.Arrays: toString, sort, fill, copyOf, copyOfRange, equals и binarySearch.