У цьому посібнику ми дізнаємося про інтерфейс Set у Java та його методи.
SetІнтерфейс Java Collectionsоснови забезпечує функцію математичного набору в Java. Це розширює Collectionінтерфейс.
На відміну від Listінтерфейсу, набори не можуть містити повторювані елементи.
Класи, що реалізують Set
Оскільки Setце інтерфейс, ми не можемо створювати з нього об'єкти.
Для того, щоб використовувати функціональні можливості Setінтерфейсу, ми можемо використовувати такі класи:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Ці класи визначені у Collectionsфреймворці та реалізують Setінтерфейс.

Інтерфейси, що розширюють Set
SetІнтерфейс також поширюється цими подинтерфейсах:
- SortedSet
- NavigableSet

Як користуватися Set?
У Java ми повинні імпортувати java.util.Setпакет, щоб використовувати Set.
// Set implementation using HashSet Set animals = new HashSet();
Тут ми створили Setпокликаних тварин. Ми використали HashSetклас для реалізації Setінтерфейсу.
Методи набору
SetІнтерфейс включає в себе всі методи Collectionінтерфейсу. Це тому Collection, що це супер інтерфейс Set.
Деякі з найбільш часто використовуваних методів Collectionінтерфейсу, які також доступні в Setінтерфейсі:
- add () - додає вказаний елемент до набору
- addAll () - додає всі елементи зазначеної колекції до набору
- iterator () - повертає ітератор, який можна використовувати для послідовного доступу до елементів набору
- remove () - видаляє вказаний елемент із набору
- removeAll () - видаляє всі елементи з набору, який присутній в іншому вказаному наборі
- retainAll () - зберігає всі елементи набору, які також присутні в іншому вказаному наборі
- clear () - видаляє всі елементи з набору
- size () - повертає довжину (кількість елементів) набору
- toArray () - повертає масив, що містить усі елементи набору
- contains () - повертає,
trueякщо набір містить зазначений елемент - containsAll () - повертає,
trueякщо набір містить усі елементи зазначеної колекції - hashCode () - повертає значення хеш-коду (адреса елемента в наборі)
Щоб дізнатись про інші методи Setінтерфейсу, відвідайте Java Set (офіційна документація Java).
Набір операцій
Інтерфейс Java Setдозволяє нам виконувати основні математичні операції набору, такі як об'єднання, перетин та підмножина.
- Union - щоб отримати об'єднання двох множин x і y, ми можемо використовувати
x.addAll(y) - Перетин - щоб отримати перетин двох множин x і y, ми можемо використовувати
x.retainAll(y) - Підмножина - щоб перевірити, чи x є підмножиною y, ми можемо використовувати
y.containsAll(x)
Реалізація набору інтерфейсів
1. Реалізація класу HashSet
import java.util.Set; import java.util.HashSet; class Main ( public static void main(String() args) ( // Creating a set using the HashSet class Set set1 = new HashSet(); // Add elements to the set1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); // Creating another set using the HashSet class Set set2 = new HashSet(); // Add elements set2.add(1); set2.add(2); System.out.println("Set2: " + set2); // Union of two sets set2.addAll(set1); System.out.println("Union is: " + set2); ) )
Вихідні дані
Набір1: (2, 3) Набір2: (1, 2) Союз: (1, 2, 3)
Щоб дізнатись більше про це HashSet, відвідайте Java HashSet.
2. Впровадження класу TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main ( public static void main(String() args) ( // Creating a set using the TreeSet class Set numbers = new TreeSet(); // Add elements to the set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("Set using TreeSet: " + numbers); // Access Elements using iterator() System.out.print("Accessing elements using iterator(): "); Iterator iterate = numbers.iterator(); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Вихідні дані
Встановити за допомогою TreeSet: (1, 2, 3) Доступ до елементів за допомогою iterator (): 1, 2, 3,
Щоб дізнатись більше про це TreeSet, відвідайте Java TreeSet.
Тепер, коли ми знаємо , що Setє, ми побачимо його реалізацію в класах , як EnumSet, HashSet, LinkedHashSetі TreeSetв наступних уроках.








