У цьому посібнику ми дізнаємося про інтерфейс 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
в наступних уроках.