W tym samouczku dowiemy się o interfejsie Set w Javie i jego metodach.
Set
Interfejs Java Collections
ramach udostępnia funkcje zestawu matematycznej w Javie. Rozszerza Collection
interfejs.
W przeciwieństwie do List
interfejsu zestawy nie mogą zawierać zduplikowanych elementów.
Klasy implementujące Set
Ponieważ Set
jest to interfejs, nie możemy tworzyć z niego obiektów.
W celu wykorzystania funkcjonalności Set
interfejsu możemy skorzystać z następujących klas:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Te klasy są zdefiniowane w Collections
ramach i implementują Set
interfejs.
Interfejsy rozszerzające Set
Set
Interfejs jest również przedłużony o tych podinterfejsów:
- SortedSet
- NavigableSet
Jak korzystać z zestawu?
W Javie musimy zaimportować java.util.Set
pakiet, aby użyć Set
.
// Set implementation using HashSet Set animals = new HashSet();
Tutaj stworzyliśmy Set
nazwane zwierzęta. Użyliśmy tej HashSet
klasy do zaimplementowania Set
interfejsu.
Metody ustawiania
Set
Interfejs obejmuje wszystkie sposoby przez Collection
interfejs. To dlatego, że Collection
jest super interfejsem Set
.
Niektóre z powszechnie używanych metod Collection
interfejsu, które są również dostępne w Set
interfejsie, to:
- add () - dodaje określony element do zestawu
- addAll () - dodaje wszystkie elementy określonej kolekcji do zestawu
- iterator () - zwraca iterator, który może być użyty do sekwencyjnego dostępu do elementów zestawu
- remove () - usuwa określony element z zestawu
- removeAll () - usuwa wszystkie elementy z zestawu, który jest obecny w innym określonym zestawie
- retainAll () - zachowuje wszystkie elementy w zestawie, które są również obecne w innym określonym zestawie
- clear () - usuwa wszystkie elementy ze zbioru
- size () - zwraca długość (liczbę elementów) zestawu
- toArray () - zwraca tablicę zawierającą wszystkie elementy zestawu
- zawiera () - zwraca,
true
jeśli zestaw zawiera określony element - zawieraAll () - zwraca,
true
jeśli zestaw zawiera wszystkie elementy określonej kolekcji - hashCode () - zwraca wartość kodu skrótu (adres elementu w zestawie)
Aby dowiedzieć się więcej o metodach Set
interfejsu, odwiedź Java Set (oficjalna dokumentacja Java).
Operacje na zbiorach
Set
Interfejs Java umożliwia nam wykonywanie podstawowych operacji matematycznych, takich jak suma, przecięcie i podzbiór.
- Suma - aby uzyskać sumę dwóch zbiorów x i y, możemy użyć
x.addAll(y)
- Przecięcie - aby otrzymać przecięcie dwóch zbiorów x i y, możemy użyć
x.retainAll(y)
- Podzbiór - aby sprawdzić, czy x jest podzbiorem y, możemy użyć
y.containsAll(x)
Implementacja interfejsu zestawu
1. Implementacja klasy 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); ) )
Wynik
Zestaw1: (2, 3) Zestaw2: (1, 2) Suma to: (1, 2, 3)
Aby dowiedzieć się więcej HashSet
, odwiedź witrynę Java HashSet.
2. Implementacja klasy 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(", "); ) ) )
Wynik
Ustaw za pomocą TreeSet: (1, 2, 3) Dostęp do elementów za pomocą iteratora (): 1, 2, 3,
Aby dowiedzieć się więcej TreeSet
, odwiedź Java TreeSet.
Teraz, gdy wiemy, co Set
jest, widzimy jego implementacje w klasach jak EnumSet
, HashSet
, LinkedHashSet
a TreeSet
w następnych ćwiczeń.