V tomto tutoriálu se dozvíme o rozhraní Set v Javě a jeho metodách.
Set
Rozhraní Java Collections
rámce poskytuje funkce matematické sady v Javě. Rozšiřuje Collection
rozhraní.
Na rozdíl od List
rozhraní nemohou sady obsahovat duplicitní prvky.
Třídy, které implementují Set
Protože Set
je to rozhraní, nemůžeme z něj vytvářet objekty.
Abychom mohli používat funkce Set
rozhraní, můžeme použít tyto třídy:
- HashSet
- LinkedHashSet
- EnumSet
- Sada stromů
Tyto třídy jsou definovány v Collections
rámci a implementují Set
rozhraní.
Rozhraní, která rozšiřují Set
Set
Rozhraní je také rozšířena těmito podrozhraní:
- Seted set
- NavigableSet
Jak používat Set?
V Javě musíme java.util.Set
pro použití importovat balíček Set
.
// Set implementation using HashSet Set animals = new HashSet();
Zde jsme vytvořili Set
zvaná zvířata. HashSet
Třídu jsme použili k implementaci Set
rozhraní.
Metody setu
Set
Rozhraní zahrnuje všechny metody Collection
rozhraní. Je to proto, že Collection
je to super rozhraní Set
.
Některé z běžně používaných metod Collection
rozhraní, které je také k dispozici v Set
rozhraní, jsou:
- add () - přidá zadaný prvek do sady
- addAll () - přidá do sady všechny prvky určené kolekce
- iterator () - vrací iterátor, který lze použít k postupnému přístupu k prvkům sady
- remove () - odstraní zadaný prvek ze sady
- removeAll () - odstraní všechny prvky ze sady, která je přítomna v jiné určené sadě
- keepAll () - zachová všechny prvky v sadě, které jsou také přítomny v jiné určené sadě
- clear () - odstraní všechny prvky ze sady
- size () - vrací délku (počet prvků) sady
- toArray () - vrátí pole obsahující všechny prvky sady
- contains () - vrátí,
true
pokud sada obsahuje zadaný prvek - containsAll () - vrátí se,
true
pokud sada obsahuje všechny prvky určené kolekce - hashCode () - vrací hodnotu hash kódu (adresa prvku v sadě)
Chcete-li se dozvědět více metod Set
rozhraní, navštivte Java Set (oficiální dokumentace Java).
Nastavit operace
Rozhraní Java Set
nám umožňuje provádět základní operace matematické množiny, jako je sjednocení, průnik a podmnožina.
- Union - získat sjednocení dvou množin X a Y, můžeme použít
x.addAll(y)
- Průnik - abychom získali průnik dvou množin xay, můžeme použít
x.retainAll(y)
- Subset - pro kontrolu, zda x je podmnožinou y, můžeme použít
y.containsAll(x)
Implementace nastaveného rozhraní
1. Implementace třídy 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); ) )
Výstup
Set1: (2, 3) Set2: (1, 2) Union is: (1, 2, 3)
Chcete-li se dozvědět více o HashSet
, navštivte Java HashSet.
2. Implementace třídy 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(", "); ) ) )
Výstup
Nastavit pomocí TreeSet: (1, 2, 3) Přístup k prvkům pomocí iterátoru (): 1, 2, 3,
Chcete-li se dozvědět více TreeSet
, navštivte Java TreeSet.
Teď, když víme, co Set
znamená, že budeme vidět jeho implementace ve třídách, jako EnumSet
, HashSet
, LinkedHashSet
a TreeSet
v dalších cvičeních.