Коллекция HashSet

HashSet в Java представляет собой реализацию интерфейса Set, который не содержит дубликатов элементов и не гарантирует порядок элементов в коллекции. Вместо этого элементы хранятся внутри хэш-таблицы, что обеспечивает быстрый доступ к элементам.

  1. Уникальность элементов: HashSet не содержит дубликатов элементов. При попытке добавления уже существующего элемента в HashSet новый элемент не будет добавлен.

  2. Отсутствие порядка: Элементы в HashSet не упорядочены. Порядок элементов может меняться с течением времени в зависимости от реализации и изменений в структуре данных.

  3. Быстрый доступ к элементам: Благодаря использованию хэш-таблицы, HashSet обеспечивает константное время выполнения операций add(), remove() и contains() в среднем случае (O(1)).

  4. Несинхронизированность: HashSet не является синхронизированным, поэтому он не подходит для использования в многопоточных приложениях без дополнительной синхронизации.

  5. Итерация по элементам: Поскольку HashSet не гарантирует порядок элементов, порядок итерации по нему не определен. Вы можете использовать итератор для перебора элементов, но порядок их обхода может быть произвольным.

Пример использования HashSet:

import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();

        // Добавление элементов
        set.add("apple");
        set.add("banana");
        set.add("orange");

        // Проверка наличия элемента
        boolean containsOrange = set.contains("orange");
        System.out.println("Содержит апельсин? " + containsOrange);

        // Удаление элемента
        set.remove("banana");

        // Итерация по элементам
        for (String fruit : set) {
            System.out.println(fruit);
        }
    }
}

Last updated