Nastavljeni vmesnik je prisoten v paketu java.util in razširja Zbirni vmesnik . Je neurejena zbirka objektov, v kateri ni mogoče shraniti podvojenih vrednosti. Je vmesnik, ki implementira matematični niz. Ta vmesnik vsebuje metode, podedovane iz vmesnika zbirke, in dodaja funkcijo, ki omejuje vstavljanje podvojenih elementov. Obstajata dva vmesnika, ki razširjata implementacijo nabora, in sicer SortedSet in NavigableSet.

Na zgornji sliki navigacijski niz razširja vmesnik razvrščenega niza. Ker nabor ne obdrži vrstnega reda vstavljanja, vmesnik navigacijskega nabora zagotavlja izvedbo za krmarjenje po naboru. Razred, ki implementira navigacijski niz, je TreeSet, ki je implementacija samouravnoteženega drevesa. Zato nam ta vmesnik ponuja način za krmarjenje po tem drevesu.
Izjava: Vmesnik Set je deklariran kot:
public interface Set extends Collection>
Ustvarjanje skupnih objektov
Ker je Set an vmesnik , predmetov ni mogoče ustvariti iz vrstnega nabora. Za ustvarjanje predmeta vedno potrebujemo razred, ki razširi ta seznam. In tudi po uvedbi Generiki v Javi 1.5 je možno omejiti vrsto objekta, ki se lahko shrani v Set. Ta tipsko varen niz je mogoče opredeliti kot:
// Obj is the type of the object to be stored in Set Set set = new HashSet ();>
Razpravljajmo o metodah, ki so prisotne v vmesniku Set, ki je na voljo spodaj, v spodnji obliki tabele, kot sledi:
| Metoda | Opis |
|---|---|
| dodaj (element) | Ta metoda se uporablja za dodajanje določenega elementa v niz. Funkcija doda element le, če navedeni element še ni prisoten v naboru, sicer funkcija vrne False, če je element že prisoten v naboru. |
| addAll(zbirka) | Ta metoda se uporablja za dodajanje vseh elementov iz omenjene zbirke obstoječemu nizu. Elementi se dodajajo naključno brez upoštevanja kakršnega koli posebnega vrstnega reda. |
| počisti() | Ta metoda se uporablja za odstranitev vseh elementov iz množice, vendar ne za brisanje množice. Referenca za komplet še vedno obstaja. |
| vsebuje (element) | Ta metoda se uporablja za preverjanje, ali je določen element prisoten v naboru ali ne. |
| vsebujeVse(zbirka) | Ta metoda se uporablja za preverjanje, ali nabor vsebuje vse elemente, ki so prisotni v dani zbirki ali ne. Ta metoda vrne true, če nabor vsebuje vse elemente, in vrne false, če kateri od elementov manjka. |
| hashCode() | Ta metoda se uporablja za pridobitev vrednosti hashCode za ta primerek Seta. Vrne celoštevilsko vrednost, ki je vrednost hashCode za ta primerek nabora. |
| je prazno() | Ta metoda se uporablja za preverjanje, ali je niz prazen ali ne. |
| iterator() | Ta metoda se uporablja za vrnitev iterator kompleta. Elementi iz množice se vrnejo v naključnem vrstnem redu. |
| odstrani (element) | Ta metoda se uporablja za odstranitev danega elementa iz niza. Ta metoda vrne True, če je navedeni element prisoten v Setu, sicer vrne False. |
| odstraniVse(zbirka) | Ta metoda se uporablja za odstranitev vseh elementov iz zbirke, ki so prisotni v nizu. Ta metoda vrne true, če se je ta niz spremenil zaradi klica. |
| ohraniVse(zbirka) | Ta metoda se uporablja za ohranitev vseh elementov iz niza, ki so omenjeni v dani zbirki. Ta metoda vrne true, če se je ta niz spremenil zaradi klica. |
| velikost () | Ta metoda se uporablja za določitev velikosti nabora. To vrne celoštevilsko vrednost, ki označuje število elementov. |
| toArray() | Ta metoda se uporablja za oblikovanje matrike enakih elementov, kot je nabor. |
Ilustracija: Vzorec programa za ponazoritev vmesnika Set
Java
// Java program Illustrating Set Interface> > // Importing utility classes> import> java.util.*;> > // Main class> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Demonstrating Set using HashSet> >// Declaring object of type String> >Set hash_Set =>new> HashSet();> > >// Adding elements to the Set> >// using add() method> >hash_Set.add(>'Geeks'>);> >hash_Set.add(>'For'>);> >hash_Set.add(>'Geeks'>);> >hash_Set.add(>'Example'>);> >hash_Set.add(>'Set'>);> > >// Printing elements of HashSet object> >System.out.println(hash_Set);> >}> }> |
>
>Izhod
[Set, Example, Geeks, For]>
Operacije na vmesniku Set
Vmesnik niza omogoča uporabnikom, da izvajajo osnovne matematične operacije na nizu. Za razumevanje teh osnovnih operacij vzemimo dve matriki. Naj bo set1 = [1, 3, 2, 4, 8, 9, 0] in set2 = [1, 3, 7, 5, 4, 0, 7, 5]. Potem so možne operacije na množicah:
1. Križišče: Ta operacija vrne vse skupne elemente iz danih dveh nizov. Za zgornja dva sklopa bi bilo presečišče:
java večnitnost
Intersection = [0, 1, 3, 4]>
2. Zveza: Ta operacija doda vse elemente v enem nizu z drugim. Za zgornja dva niza bi bila unija:
Union = [0, 1, 2, 3, 4, 5, 7, 8, 9]>
3. Razlika: Ta operacija odstrani vse vrednosti v enem nizu iz drugega niza. Za zgornja dva niza bi bila razlika:
Difference = [2, 8, 9]>
Zdaj pa izvedimo naslednje operacije, kot je definirano zgoraj, kot sledi:
primer:
Java
// Java Program Demonstrating Operations on the Set> // such as Union, Intersection and Difference operations> > // Importing all utility classes> import> java.util.*;> > // Main class> public> class> SetExample {> > >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an object of Set class> >// Declaring object of Integer type> >Set a =>new> HashSet();> > >// Adding all elements to List> >a.addAll(Arrays.asList(> >new> Integer[] {>1>,>3>,>2>,>4>,>8>,>9>,>0> }));> > >// Again declaring object of Set class> >// with reference to HashSet> >Set b =>new> HashSet();> > >b.addAll(Arrays.asList(> >new> Integer[] {>1>,>3>,>7>,>5>,>4>,>0>,>7>,>5> }));> > > >// To find union> >Set union =>new> HashSet(a);> >union.addAll(b);> >System.out.print(>'Union of the two Set'>);> >System.out.println(union);> > >// To find intersection> >Set intersection =>new> HashSet(a);> >intersection.retainAll(b);> >System.out.print(>'Intersection of the two Set'>);> >System.out.println(intersection);> > >// To find the symmetric difference> >Set difference =>new> HashSet(a);> >difference.removeAll(b);> >System.out.print(>'Difference of the two Set'>);> >System.out.println(difference);> >}> }> |
>
>Izhod
Union of the two Set[0, 1, 2, 3, 4, 5, 7, 8, 9] Intersection of the two Set[0, 1, 3, 4] Difference of the two Set[2, 8, 9]>
Izvajanje različnih operacij na SortedSet
Po uvedbi Generiki v Javi 1.5 je možno omejiti vrsto objekta, ki se lahko shrani v Set. Ker je Set vmesnik, ga je mogoče uporabiti samo z razredom, ki implementira ta vmesnik. HashSet je eden izmed pogosto uporabljenih razredov, ki implementira vmesnik Set. Zdaj pa poglejmo, kako izvesti nekaj pogosto uporabljenih operacij na HashSet. Naslednje operacije bomo izvedli na naslednji način:
- Dodajanje elementov
- Dostop do elementov
- Odstranjevanje elementov
- Ponavljajoči se elementi
- Ponavljanje skozi Set
Zdaj pa se pogovorimo o teh operacijah posamezno, kot sledi:
Operacije 1: Dodajanje elementov
Da bi dodali element v Set, lahko uporabimo metoda add(). . Vendar se vrstni red vstavljanja ne ohrani v nizu. Interno se za vsak element ustvari zgoščena vrednost in vrednosti se shranijo glede na ustvarjeno zgoščeno vrednost. vrednosti se primerjajo in razvrščajo v naraščajočem vrstnem redu. Upoštevati moramo, da podvojeni elementi niso dovoljeni in da so vsi podvojeni elementi prezrti. Poleg tega Set sprejema ničelne vrednosti.
Primer
Java
rojen freddie mercury
// Java Program Demonstrating Working of Set by> // Adding elements using add() method> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an object of Set and> >// declaring object of type String> >Set hs =>new> HashSet();> > >// Adding elements to above object> >// using add() method> >hs.add(>'B'>);> >hs.add(>'B'>);> >hs.add(>'C'>);> >hs.add(>'A'>);> > >// Printing the elements inside the Set object> >System.out.println(hs);> >}> }> |
>
>Izhod
[A, B, C]>
Operacija 2: Dostop do elementov
Po dodajanju elementov, če želimo dostopati do elementov, lahko uporabimo vgrajene metode, kot je contains().
Primer
Java
// Java code to demonstrate Working of Set by> // Accessing the Elements of the Set object> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating an object of Set and> >// declaring object of type String> >Set hs =>new> HashSet();> > >// Elements are added using add() method> >// Later onwards we will show accessing the same> > >// Custom input elements> >hs.add(>'A'>);> >hs.add(>'B'>);> >hs.add(>'C'>);> >hs.add(>'A'>);> > >// Print the Set object elements> >System.out.println(>'Set is '> + hs);> > >// Declaring a string> >String check =>'D'>;> > >// Check if the above string exists in> >// the SortedSet or not> >// using contains() method> >System.out.println(>'Contains '> + check +>' '> >+ hs.contains(check));> >}> }> |
>
>Izhod
Set is [A, B, C] Contains D false>
Operacija 3: Odstranjevanje vrednosti
Vrednosti je mogoče odstraniti iz nabora z uporabo metode remove().
Primer
Java
// Java Program Demonstrating Working of Set by> // Removing Element/s from the Set> > // Importing all utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Declaring object of Set of type String> >Set hs =>new> HashSet();> > >// Elements are added> >// using add() method> > >// Custom input elements> >hs.add(>'A'>);> >hs.add(>'B'>);> >hs.add(>'C'>);> >hs.add(>'B'>);> >hs.add(>'D'>);> >hs.add(>'E'>);> > >// Printing initial Set elements> >System.out.println(>'Initial HashSet '> + hs);> > >// Removing custom element> >// using remove() method> >hs.remove(>'B'>);> > >// Printing Set elements after removing an element> >// and printing updated Set elements> >System.out.println(>'After removing element '> + hs);> >}> }> |
>
>Izhod
Initial HashSet [A, B, C, D, E] After removing element [A, C, D, E]>
Operacija 4: Ponavljanje skozi Set
Obstajajo različni načini za ponavljanje skozi Set. Najbolj znana je uporaba izboljšane zanke for.
Primer
Java
// Java Program to Demonstrate Working of Set by> // Iterating through the Elements> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating object of Set and declaring String type> >Set hs =>new> HashSet();> > >// Adding elements to Set> >// using add() method> > >// Custom input elements> >hs.add(>'A'>);> >hs.add(>'B'>);> >hs.add(>'C'>);> >hs.add(>'B'>);> >hs.add(>'D'>);> >hs.add(>'E'>);> > >// Iterating through the Set> >// via for-each loop> >for> (String value : hs)> > >// Printing all the values inside the object> >System.out.print(value +>', '>);> > >System.out.println();> >}> }> |
>
>Izhod
A, B, C, D, E,>
Razrede, ki izvajajo vmesnik Set v zbirkah Java, je mogoče enostavno zaznati na spodnji sliki, kot sledi, in so navedeni na naslednji način:
- HashSet
- EnumSet
- LinkedHashSet
- TreeSet
1. razred: HashSet
Razred HashSet, ki je implementiran v okvir zbiranja je inherentna izvedba Primer
Java
shehzad poonawala
// Java program Demonstrating Creation of Set object> // Using the Hashset class> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating object of Set of type String> >Set h =>new> HashSet();> > >// Adding elements into the HashSet> >// using add() method> > >// Custom input elements> >h.add(>'India'>);> >h.add(>'Australia'>);> >h.add(>'South Africa'>);> > >// Adding the duplicate element> >h.add(>'India'>);> > >// Displaying the HashSet> >System.out.println(h);> > >// Removing items from HashSet> >// using remove() method> >h.remove(>'Australia'>);> >System.out.println(>'Set after removing '> >+>'Australia:'> + h);> > >// Iterating over hash set items> >System.out.println(>'Iterating over set:'>);> > >// Iterating through iterators> >Iterator i = h.iterator();> > >// It holds true till there is a single element> >// remaining in the object> >while> (i.hasNext())> > >System.out.println(i.next());> >}> }> |
>
>Izhod
[South Africa, Australia, India] Set after removing Australia:[South Africa, India] Iterating over set: South Africa India>
2. razred: EnumSet
Razred EnumSet, ki je implementiran v okvir zbirk je ena od specializiranih izvedb vmesnika Set za uporabo z vrsto naštevanja . Je visoko zmogljiva implementacija nabora, veliko hitrejša od HashSeta. Vsi elementi v nizu enum morajo izhajati iz enega samega tipa enumiranja, ki je podano, ko je niz ustvarjen izrecno ali implicitno. Poglejmo, kako s tem razredom ustvariti nabor objektov.
Primer
Java
// Java program to demonstrate the> // creation of the set object> // using the EnumSet class> import> java.util.*;> > enum> Gfg { CODE, LEARN, CONTRIBUTE, QUIZ, MCQ }> ;> > public> class> GFG {> > >public> static> void> main(String[] args)> >{> >// Creating a set> >Set set1;> > >// Adding the elements> >set1 = EnumSet.of(Gfg.QUIZ, Gfg.CONTRIBUTE,> >Gfg.LEARN, Gfg.CODE);> > >System.out.println(>'Set 1: '> + set1);> >}> }> |
>
>Izhod
Set 1: [CODE, LEARN, CONTRIBUTE, QUIZ]>
3. razred: LinkedHashSet
Razred LinkedHashSet, ki je implementiran v okvir zbirk je urejena različica HashSeta, ki vzdržuje dvojno povezan seznam v vseh elementih. Kadar je treba ohraniti vrstni red ponovitev, se uporabi ta razred. Pri ponavljanju skozi HashSet je vrstni red nepredvidljiv, medtem ko nam LinkedHashSet omogoča ponavljanje elementov v vrstnem redu, v katerem so bili vstavljeni. Poglejmo, kako s tem razredom ustvariti nabor objektov.
Primer
10 milijonov
Java
// Java program to demonstrate the> // creation of Set object using> // the LinkedHashset class> import> java.util.*;> > class> GFG {> > >public> static> void> main(String[] args)> >{> >Set lh =>new> LinkedHashSet();> > >// Adding elements into the LinkedHashSet> >// using add()> >lh.add(>'India'>);> >lh.add(>'Australia'>);> >lh.add(>'South Africa'>);> > >// Adding the duplicate> >// element> >lh.add(>'India'>);> > >// Displaying the LinkedHashSet> >System.out.println(lh);> > >// Removing items from LinkedHashSet> >// using remove()> >lh.remove(>'Australia'>);> >System.out.println(>'Set after removing '> >+>'Australia:'> + lh);> > >// Iterating over linked hash set items> >System.out.println(>'Iterating over set:'>);> >Iterator i = lh.iterator();> >while> (i.hasNext())> >System.out.println(i.next());> >}> }> |
>
>Izhod
[India, Australia, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>
Razred 4: TreeSet
Razred TreeSet, ki je implementiran v okvir zbirk in izvajanje vmesnika SortedSet in SortedSet razširja vmesnik Set. Obnaša se kot preprost niz z izjemo, da shranjuje elemente v razvrščeni obliki. TreeSet za shranjevanje uporablja drevesno strukturo podatkov. Objekti so shranjeni v razvrščenem naraščajočem vrstnem redu. Lahko pa ponavljamo v padajočem vrstnem redu z uporabo metode TreeSet.descendingIterator(). Poglejmo, kako s tem razredom ustvariti nabor objektov.
Primer
Java
// Java Program Demonstrating Creation of Set object> // Using the TreeSet class> > // Importing utility classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating a Set object and declaring it of String> >// type> >// with reference to TreeSet> >Set ts =>new> TreeSet();> > >// Adding elements into the TreeSet> >// using add()> >ts.add(>'India'>);> >ts.add(>'Australia'>);> >ts.add(>'South Africa'>);> > >// Adding the duplicate> >// element> >ts.add(>'India'>);> > >// Displaying the TreeSet> >System.out.println(ts);> > >// Removing items from TreeSet> >// using remove()> >ts.remove(>'Australia'>);> >System.out.println(>'Set after removing '> >+>'Australia:'> + ts);> > >// Iterating over Tree set items> >System.out.println(>'Iterating over set:'>);> >Iterator i = ts.iterator();> > >while> (i.hasNext())> >System.out.println(i.next());> >}> }> |
>
>Izhod
[Australia, India, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>