Топ-100Интерфейс Set в Java - CodOrbits
LogoCodOrbits

Раздел: Коллекции

Изучите Java Collections Framework: List, Set, Map и другие структуры данных для эффективной работы с данными

Все разделы
Иконка Коллекции

Интерфейс Set в Java

Last updated: 5 мая 2025 г.

Благодаря классам реализующим Set можно создать массив в котором элементы не повторяются.

HashSet это как hashmap, только без значений, только ключи.

В hashset могут храниться только уникальные ключи, благодаря уже ранее упомянутому hashcode, который есть у каждого элемента добавляемого в hashset.

Поясним на примере:

1import java.util.*;
2
3public class Set {
4    public static void main(String[] args) {
5        // создаем коллекцию
6        HashSet<String> hSet = new HashSet<String>();
7        // добавление элемента
8        hSet.add("Sunday");
9        hSet.add("Monday");
10        hSet.add("Sunday");
11        hSet.add("Tuesday");
12        // удаление элемента
13        hSet.remove("Monday");
14        // в hashset нету get поэтому сначала нужно преобразовать
15        // в массив а потом извлекать либо использовать iterator
16        String[] hSetArr = hSet.toArray(new String[hSet.size()]);
17        for(int i = 0; i < hSetArr.length; i++) {
18            System.out.println(hSetArr[i]);
19        }
20        // проверка на наличие элемента в списке
21        System.out.println(hSet.contains("Tuesday"));
22        // Как можно увидеть по результатам в массиве всего один Sunday
23    }
24}

Вывод:


TreeSet

TreeSet – хранит элементы в виде дерева, что позволяет быстрее искать элементы.

Все элементы отсортированы и не повторяются.

TreeSet лучше всего подходит для нахождения диапазонов.

Пример программы:

1import java.util.*;
2
3public class Set {
4    public static void main(String[] args) {
5        // создаем коллекцию
6        TreeSet<String> tSet = new TreeSet<String>();
7        // добавление элемента
8        tSet.add("D");
9        tSet.add("B");
10        tSet.add("A");
11        tSet.add("C");
12        tSet.add("E");
13        // удаление элемента
14        tSet.remove("C");
15        // В TreeSet нету get поэтому сначала нужно преобразовать
16        // в массив а потом извлекать либо использовать iterator
17        String[] tSetArr = tSet.toArray(new String[tSet.size()]);
18        for(int i = 0; i < tSetArr.length; i++) {
19            System.out.println(tSetArr[i]);
20        }
21        // проверка на наличие элемента в списке
22        System.out.println(tSet.contains("П"));
23        // для нахождения диапазона
24        System.out.println(tSet.tailSet("B"));
25        System.out.println(tSet.headSet("B"));
26        // Как можно увидеть по результатам в массиве
27        // всего один В и элементы хранятся в алфавитном порядке
28    }
29}

Вывод:


LinkedHashSet

LinkedHashSet – хранит элементы в порядке вставки и элементы не повторяются.

Опять таки, лучше использовать когда элементы часто вставляются/удаляются.

Пример программы:

1import java.util.*;
2
3public class Set {
4    public static void main(String[] args) {
5        // создаем коллекцию
6        LinkedHashSet<String> ltSet = new LinkedHashSet<String>();
7        // добавление элемента
8        ltSet.add("D");
9        ltSet.add("B");
10        ltSet.add("A");
11        ltSet.add("C");
12        ltSet.add("B");
13        // удаление элемента
14        ltSet.remove("C");
15        // LinkedHashSet нету get поэтому сначала нужно преобразовать
16        // в массив а потом извлекать либо использовать iterator
17        String[] ltSetArr = ltSet.toArray(new String[ltSet.size()]);
18        for(int i = 0; i< ltSetArr.length; i++) {
19            System.out.println(ltSetArr[i]);
20        }
21        // проверка на наличие элемента в списке
22        System.out.println(ltSet.contains("B"));
23        //Как можно увидеть по результатам в масиве всего один В
24        // элементы хранятся в порядке вставки
25    }
26}

Вывод:


Следующие уроки

Потоки ввода/вывода. PrintWriter и PrintStream

10
мин.

Similar Articles Icon
Divider

FileStream в Java: чтение и запись файлов

7
мин.

Similar Articles Icon
Divider

DataStream в Java

8
мин.

Similar Articles Icon