Ответ
Класс java.util.Collections — это утилитный класс, содержащий статические методы для операций над коллекциями или возврата специальных коллекций. Он не предназначен для создания экземпляров.
Основные категории методов:
-
Алгоритмы (для List):
sort(List<T> list)– сортирует список (естественный порядок или черезComparator).reverse(List<?> list)– меняет порядок элементов на обратный.shuffle(List<?> list)– случайно переставляет элементы.binarySearch(List<? extends Comparable<? super T>> list, T key)– быстрый поиск в отсортированном списке.
-
Синхронизация (устаревший подход):
synchronizedList(List<T> list)– возвращает синхронизированную (потокобезопасную) обертку над коллекцией. Лучше использоватьjava.util.concurrent.
-
Неизменяемые коллекции:
unmodifiableList(List<? extends T> list)– возвращает представление списка, которое нельзя изменить.
Пример использования:
import java.util.*;
public class CollectionsExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 1, 3, 1, 4));
System.out.println("Original: " + numbers); // [5, 1, 3, 1, 4]
Collections.sort(numbers);
System.out.println("Sorted: " + numbers); // [1, 1, 3, 4, 5]
Collections.reverse(numbers);
System.out.println("Reversed: " + numbers); // [5, 4, 3, 1, 1]
int index = Collections.binarySearch(numbers, 3);
// ВАЖНО: binarySearch работает корректно только на отсортированном списке!
// Для этого списка результат будет непредсказуем, так как он не отсортирован.
System.out.println("Index of 3 (after reverse): " + index); // Может быть отрицательным
}
}