I denne opplæringen vil vi lære om Set-grensesnittet i Java og dets metoder.
Den Set
grensesnittet til Java Collections
rammeverket gir funksjonene i matematisk sett i Java. Det utvider Collection
grensesnittet.
I motsetning til List
grensesnittet kan sett ikke inneholde dupliserte elementer.
Klasser som implementerer Set
Siden Set
er et grensesnitt, kan vi ikke lage objekter fra det.
For å kunne bruke funksjonene i Set
grensesnittet, kan vi bruke disse klassene:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Disse klassene er definert i Collections
rammeverket og implementerer Set
grensesnittet.
Grensesnitt som utvider Set
Den Set
grensesnittet er også utvidet med følgende subinterfaces:
- SortedSet
- NavigableSet
Hvordan bruke Set?
I Java må vi importere java.util.Set
pakken for å kunne bruke den Set
.
// Set implementation using HashSet Set animals = new HashSet();
Her har vi laget et Set
kalt dyr. Vi har brukt HashSet
klassen til å implementere Set
grensesnittet.
Metoder for sett
Den Set
Grensesnittet omfatter alle fremgangsmåtene ifølge Collection
grensesnitt. Det er fordi det Collection
er et supergrensesnitt av Set
.
Noen av de vanligste metodene for Collection
grensesnittet som også er tilgjengelige i Set
grensesnittet er:
- add () - legger til det angitte elementet i settet
- addAll () - legger til alle elementene i den spesifiserte samlingen i settet
- iterator () - returnerer en iterator som kan brukes til å få tilgang til elementene i settet sekvensielt
- remove () - fjerner det angitte elementet fra settet
- removeAll () - fjerner alle elementene fra settet som er tilstede i et annet spesifisert sett
- retainAll () - beholder alle elementene i settet som også er tilstede i et annet spesifisert sett
- clear () - fjerner alle elementene fra settet
- størrelse () - returnerer lengden (antall elementer) på settet
- toArray () - returnerer en matrise som inneholder alle elementene i settet
- inneholder () - returnerer
true
hvis settet inneholder det spesifiserte elementet - containAll () - returnerer
true
hvis settet inneholder alle elementene i den angitte samlingen - hashCode () - returnerer en hash-kodeverdi (adressen til elementet i settet)
For å lære om flere metoder for Set
grensesnittet, besøk Java Set (offisiell Java-dokumentasjon).
Sett operasjoner
Java- Set
grensesnittet lar oss utføre grunnleggende matematiske settoperasjoner som union, skjæringspunkt og delmengde.
- Union - for å få foreningen av to sett x og y, kan vi bruke
x.addAll(y)
- Kryss - for å få skjæringspunktet mellom to sett x og y, kan vi bruke
x.retainAll(y)
- Delsett - for å sjekke om x er et delsett av y, kan vi bruke
y.containsAll(x)
Implementering av Set Interface
1. Implementering av HashSet-klassen
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); ) )
Produksjon
Set1: (2, 3) Set2: (1, 2) Union er: (1, 2, 3)
For å lære mer om HashSet
, besøk Java HashSet.
2. Implementering av TreeSet-klasse
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(", "); ) ) )
Produksjon
Sett med TreeSet: (1, 2, 3) Tilgang til elementer ved hjelp av iterator (): 1, 2, 3,
Hvis du vil lære mer om det TreeSet
, kan du gå til Java TreeSet.
Nå som vi vet hva Set
er, vil vi se sine implementeringer i klasser som EnumSet
, HashSet
, LinkedHashSet
og TreeSet
i de neste tutorials.