V tomto tutoriále sa dozvieme o rozhraní Set v Jave a jeho metódach.
Set
Rozhranie Java Collections
rámca poskytuje funkcie matematické sady v Jave. Rozširuje Collection
rozhranie.
Na rozdiel od List
rozhrania nemôžu sady obsahovať duplicitné prvky.
Triedy, ktoré implementujú množinu
Pretože Set
je to rozhranie, nemôžeme z neho vytvárať objekty.
Aby sme mohli používať funkcie Set
rozhrania, môžeme použiť tieto triedy:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Tieto triedy sú definované v Collections
rámci a implementujú Set
rozhranie.
Rozhrania, ktoré rozširujú množinu
Set
Rozhranie je tiež rozšírená týmito podrozhraní:
- Zoradené
- NavigableSet
Ako používať Set?
V prostredí Java musíme java.util.Set
na použitie importovať balík Set
.
// Set implementation using HashSet Set animals = new HashSet();
Tu sme vytvorili Set
zvané zvieratá. Na HashSet
implementáciu Set
rozhrania sme použili triedu .
Metódy nastavenia
Set
Rozhranie zahŕňa všetky metódy Collection
rozhrania. Je to preto, že Collection
je to super rozhranie Set
.
Niektoré z bežne používaných metód Collection
rozhrania, ktoré je tiež k dispozícii v Set
rozhraní, sú:
- add () - pridá zadaný prvok do množiny
- addAll () - pridá do sady všetky prvky určenej kolekcie
- iterátor () - vráti iterátor, ktorý je možné použiť na postupný prístup k prvkom množiny
- remove () - odstráni zadaný prvok z množiny
- removeAll () - odstráni všetky prvky zo sady, ktorá sa nachádza v inej zadanej množine
- keepAll () - zachová všetky prvky v množine, ktoré sa nachádzajú aj v inej špecifikovanej množine
- clear () - odstráni všetky prvky zo sady
- size () - vráti dĺžku (počet prvkov) množiny
- toArray () - vráti pole obsahujúce všetky prvky množiny
- contains () - vráti sa,
true
ak množina obsahuje zadaný prvok - containsAll () - vráti sa,
true
ak množina obsahuje všetky prvky zadanej kolekcie - hashCode () - vráti hodnotu hash kódu (adresa prvku v množine)
Ak sa chcete dozvedieť viac podrobností o Set
rozhraní, navštívte Java Set (oficiálna dokumentácia Java).
Nastaviť operácie
Rozhranie Java Set
nám umožňuje vykonávať základné matematické operácie s operáciami, ako je zjednotenie, križovatka a podmnožina.
- Union - získať zjednotenie dvoch množín X a Y, môžeme použiť
x.addAll(y)
- Priesečník - aby sme dostali priesečník dvoch množín x a y, môžeme použiť
x.retainAll(y)
- Podmnožina - na kontrolu, či je x podmnožinou y, môžeme použiť
y.containsAll(x)
Implementácia nastaveného rozhrania
1. Implementácia triedy 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ýkon
Sada 1: (2, 3) Sada 2: (1, 2) Únia je: (1, 2, 3)
Ak sa chcete dozvedieť viac HashSet
, navštívte Java HashSet.
2. Implementácia triedy 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ýkon
Nastaviť pomocou TreeSet: (1, 2, 3) Prístup k prvkom pomocou iterátora (): 1, 2, 3,
Ak sa chcete dozvedieť viac TreeSet
, navštívte Java TreeSet.
Teraz, keď vieme, čo Set
znamená, že budeme vidieť jeho implementácie v triedach, ako EnumSet
, HashSet
, LinkedHashSet
a TreeSet
v ďalších cvičeniach.