Ответ
Интерфейс Set в Java наследуется непосредственно от интерфейса Collection.
Иерархия:
Iterable → Collection → Set
Ключевые особенности Set:
- Запрет дубликатов: Не может содержать двух одинаковых элементов (равенство проверяется через
equals()). - Отсутствие гарантии порядка (за исключением конкретных реализаций).
Почему Set — это Collection? Он представляет собой коллекцию объектов, но с дополнительным ограничением на уникальность. Все базовые методы Collection (добавление, удаление, обход) применимы и к Set.
Пример и основные реализации:
Set<String> languages = new HashSet<>(); // Не гарантирует порядок
languages.add("Java");
languages.add("Python");
languages.add("Java"); // Дубликат не будет добавлен
System.out.println(languages); // Возможный вывод: [Java, Python] (порядок не определен)
// Другие реализации:
Set<String> linkedSet = new LinkedHashSet<>(); // Сохраняет порядок добавления
Set<String> sortedSet = new TreeSet<>(); // Хранит элементы отсортированными