Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

HashSet

Множество без повторов на основе хеш-таблицы; порядок не гарантирован.

Доступно с: Java 1.2

Синтаксис

public class HashSet<E> implements Set<E>

Примеры

Повторы отбрасываются автоматически:

void main() {
    Set<String> tags = new HashSet<>();
    tags.add("java");
    tags.add("sql");
    tags.add("java");
    IO.println(tags.size());
    IO.println(tags.contains("sql"));
}

Результат:

2
true

Уникальные слова текста:

void main() {
    String text = "to be or not to be";
    Set<String> words = new HashSet<>(List.of(text.split(" ")));
    IO.println(words.size() + " unique words");
}

Результат:

4 unique words

Примечания

add(), contains() и remove() работают за постоянное время, независимо от размера. Порядок обхода зависит от хешей и не совпадает с порядком добавления — не полагайтесь на него. Для своих классов нужны корректные equals() и hashCode(); у записей record они создаются автоматически.

См. также

  • LinkedHashSet — Множество, которое помнит порядок добавления элементов.
  • TreeSet — Множество, которое хранит элементы в отсортированном порядке.
  • Set.add() — Добавляет элемент, если его ещё нет в множестве.
  • Set.contains() — Проверяет, есть ли элемент в множестве.

Вопросы и ответы по теме

В учебнике

  • Множества: Set — Множества в Java: HashSet без повторов, LinkedHashSet и TreeSet с порядком, объединение и пересечение множеств.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.