V tej vadnici bomo spoznali vmesnik Set v Javi in njegove metode.
Set
Vmesnik Java Collections
okvir zagotavlja značilnosti matematičnega niza v Java. Razširi Collection
vmesnik.
Za razliko od List
vmesnika kompleti ne morejo vsebovati podvojenih elementov.
Razredi, ki izvajajo Set
Ker Set
je vmesnik, iz njega ne moremo ustvarjati predmetov.
Za uporabo funkcionalnosti Set
vmesnika lahko uporabimo te razrede:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Ti razredi so opredeljeni v Collections
okviru in izvajajo Set
vmesnik.
Vmesniki, ki razširjajo Set
Set
Vmesnik je razširjena tudi v teh subinterfaces:
- SortedSet
- NavigableSet
Kako uporabljati Set?
V Javi moramo uvoziti java.util.Set
paket, da ga lahko uporabljamo Set
.
// Set implementation using HashSet Set animals = new HashSet();
Tu smo ustvarili tako Set
imenovane živali. Za uporabo vmesnika smo uporabili HashSet
razred Set
.
Metode nastavitve
Set
Vmesnik vključuje vse metode v Collection
vmesniku. To je zato, ker Collection
je super vmesnik Set
.
Nekatere najpogosteje uporabljene metode Collection
vmesnika, ki so na voljo tudi v Set
vmesniku, so:
- add () - doda določeni element naboru
- addAll () - v nabor doda vse elemente določene zbirke
- iterator () - vrne iterator, s katerim lahko zaporedno dostopate do elementov nabora
- remove () - odstrani določeni element iz niza
- removeAll () - odstrani vse elemente iz niza, ki je prisoten v drugem določenem nizu
- retainAll () - ohrani vse elemente v nizu, ki so prisotni tudi v drugem določenem nizu
- clear () - odstrani vse elemente iz niza
- size () - vrne dolžino (število elementov) nabora
- toArray () - vrne matriko, ki vsebuje vse elemente nabora
- vsebuje () - vrne,
true
če niz vsebuje navedeni element - containsAll () - vrne,
true
če niz vsebuje vse elemente navedene zbirke - hashCode () - vrne vrednost hash kode (naslov elementa v nizu)
Če želite izvedeti več o metodah Set
vmesnika, obiščite Java Set (uradna dokumentacija Java).
Nastavite operacije
Vmesnik Java Set
nam omogoča izvajanje osnovnih matematičnih operacij, kot so združitev, presečišče in podskupina.
- Union - dobimo lahko združitev dveh nizov x in y
x.addAll(y)
- Presečišče - če želimo dobiti presečišče dveh nizov x in y, lahko uporabimo
x.retainAll(y)
- Podnabor - za preverjanje, ali je x podmnožica y, lahko uporabimo
y.containsAll(x)
Izvajanje nastavljenega vmesnika
1. Implementacija razreda 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); ) )
Izhod
Set1: (2, 3) Set2: (1, 2) Union je: (1, 2, 3)
Če želite izvedeti več o tem HashSet
, obiščite Java HashSet.
2. Izvajanje razreda 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(", "); ) ) )
Izhod
Nastavite z uporabo TreeSet: (1, 2, 3) Dostop do elementov s pomočjo iteratorja (): 1, 2, 3,
Če želite izvedeti več o tem TreeSet
, obiščite Java TreeSet.
Zdaj, ko vemo, kaj Set
je, bomo njegove izvedbe videli v razredih, kot EnumSet
so HashSet
, LinkedHashSet
in TreeSet
v naslednjih vajah.