Содержит ли интерфейс Collection в Java метод get()?

«Содержит ли интерфейс Collection в Java метод get()?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, базовый интерфейс java.util.Collection не определяет метод get(int index).

Почему? Интерфейс Collection представляет собой абстракцию для множества элементов, где порядок не гарантирован (как в Set). Метод доступа по индексу (get) подразумевает определенный порядок, который есть не у всех коллекций.

Где есть метод get()? Метод E get(int index) объявлен в интерфейсе java.util.List, который расширяет Collection и добавляет семантику упорядоченной последовательности.

Пример, демонстрирующий разницу:

Collection<String> collection = new HashSet<>(); // Неупорядоченная коллекция
collection.add("A");
// collection.get(0); // ОШИБКА КОМПИЛЯЦИИ! Метода get() нет в Collection.

List<String> list = new ArrayList<>(); // Упорядоченная коллекция (List)
list.add("A");
String element = list.get(0); // КОРРЕКТНО. List наследует get() от своего интерфейса.

Вывод: Для доступа по индексу необходимо использовать реализацию List (например, ArrayList, LinkedList) или преобразовать коллекцию в список.