Класс HashSet
Класс HashSet представляет собой коллекцию, которая хранит только уникальные элементы и не гарантирует порядок их следования. Внутри HashSet использует хеш-таблицу для быстрого поиска, добавления и удаления элементов. При попытке добавить уже существующий элемент коллекция не изменяется, а метод add возвращает false. Класс реализует интерфейс Set и наследуется от AbstractSet. Для создания объекта можно использовать конструктор без параметров или конструктор, принимающий другую коллекцию.
Синтаксис
HashSet<Тип> имя = new HashSet<>();
Пример
Давайте создадим HashSet и добавим в него несколько элементов, включая дубликат:
import java.util.HashSet;
public class Main
{
public static void main(String[] args)
{
HashSet<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
set.add("a");
System.out.println(set);
}
}
Результат выполнения кода:
[a, b, c]
Пример
Давайте проверим, содержит ли HashSet определённый элемент:
import java.util.HashSet;
public class Main
{
public static void main(String[] args)
{
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
boolean res = set.contains(2);
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Давайте удалим элемент из HashSet и выведем его размер:
import java.util.HashSet;
public class Main
{
public static void main(String[] args)
{
HashSet<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
set.remove("b");
System.out.println(set);
System.out.println(set.size());
}
}
Результат выполнения кода:
[a, c]
2