Nustatyta sąsaja yra java.util pakete ir išplečia Kolekcijos sąsaja . Tai netvarkingas objektų rinkinys, kuriame negalima saugoti pasikartojančių reikšmių. Tai sąsaja, įgyvendinanti matematinį rinkinį. Ši sąsaja apima metodus, paveldėtus iš Kolekcijos sąsajos, ir prideda funkciją, kuri riboja pasikartojančių elementų įterpimą. Yra dvi sąsajos, kurios praplečia rinkinio įgyvendinimą, būtent „SortedSet“ ir „NavigableSet“.

Aukščiau pateiktame paveikslėlyje naršomas rinkinys išplečia rūšiuojamo rinkinio sąsają. Kadangi rinkinys neišlaiko įterpimo tvarkos, naršymo rinkinio sąsaja suteikia galimybę naršyti rinkinyje. Klasė, kuri įgyvendina naršymo rinkinį, yra TreeSet, kuris yra savaiminio balansavimo medžio įgyvendinimas. Todėl ši sąsaja suteikia mums būdą naršyti šiame medyje.
Deklaracija: Nustatyti sąsaja deklaruojama taip:
public interface Set extends Collection>
Objektų rinkinio kūrimas
Kadangi Set yra an sąsaja , objektų negalima sukurti iš rinkinio. Mums visada reikia klasės, kuri praplečia šį sąrašą, kad galėtume sukurti objektą. Ir taip pat po įvedimo Generics Java 1.5 versijoje galima apriboti objektų, kurie gali būti saugomi rinkinyje, tipą. Šį saugaus tipo rinkinį galima apibrėžti taip:
// Obj is the type of the object to be stored in Set Set set = new HashSet ();>
Aptarkime toliau pateiktoje „Set“ sąsajoje pateiktus metodus lentelės formatu:
| Metodas | apibūdinimas |
|---|---|
| pridėti (elementas) | Šis metodas naudojamas konkrečiam elementui įtraukti į rinkinį. Funkcija prideda elementą tik tuo atveju, jei nurodyto elemento dar nėra rinkinyje, kitaip funkcija grąžina False, jei elementas jau yra rinkinyje. |
| pridėti viską (kolekcija) | Šis metodas naudojamas visiems elementams iš minėtos kolekcijos pridėti prie esamo rinkinio. Elementai pridedami atsitiktinai, nesilaikant jokios konkrečios tvarkos. |
| aišku () | Šis metodas naudojamas pašalinti visus elementus iš rinkinio, bet ne ištrinti rinkinį. Rinkinio nuoroda vis dar egzistuoja. |
| yra (elementas) | Šis metodas naudojamas patikrinti, ar rinkinyje yra konkretus elementas, ar ne. |
| yra viskas (kolekcija) | Šis metodas naudojamas patikrinti, ar rinkinyje yra visi elementai, esantys duotoje kolekcijoje, ar ne. Šis metodas grąžina „true“, jei rinkinyje yra visi elementai, ir grąžina „false“, jei kurio nors iš elementų trūksta. |
| maišos kodas () | Šis metodas naudojamas norint gauti šio rinkinio egzemplioriaus maišos kodo reikšmę. Jis grąžina sveikojo skaičiaus reikšmę, kuri yra šio rinkinio egzemplioriaus maišos kodo reikšmė. |
| Yra tuščias() | Šis metodas naudojamas patikrinti, ar rinkinys tuščias, ar ne. |
| iteratorius () | Šis metodas naudojamas grąžinti iteratorius rinkinio. Elementai iš rinkinio grąžinami atsitiktine tvarka. |
| pašalinti (elementas) | Šis metodas naudojamas norint pašalinti nurodytą elementą iš rinkinio. Šis metodas grąžina „True“, jei nurodytas elementas yra rinkinyje, kitaip jis grąžina „False“. |
| pašalinti viską (kolekcija) | Šis metodas naudojamas pašalinti iš kolekcijos visus rinkinyje esančius elementus. Šis metodas grąžina teisingą, jei šis rinkinys pasikeitė dėl iškvietimo. |
| išlaikyti viską (kolekcija) | Šis metodas naudojamas norint išsaugoti visus rinkinio elementus, kurie paminėti duotoje kolekcijoje. Šis metodas grąžina teisingą, jei šis rinkinys pasikeitė dėl iškvietimo. |
| dydis () | Šis metodas naudojamas rinkinio dydžiui nustatyti. Tai grąžina sveikojo skaičiaus reikšmę, kuri reiškia elementų skaičių. |
| toArray () | Šis metodas naudojamas formuoti masyvą iš tų pačių elementų kaip ir rinkinio. |
Iliustracija: Programos pavyzdys rinkinio sąsajai iliustruoti
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);> >}> }> |
>
>Išvestis
[Set, Example, Geeks, For]>
Veiksmai rinkinio sąsajoje
Nustatyti sąsaja leidžia vartotojams atlikti pagrindines matematinės operacijos rinkinyje. Paimkime du masyvus, kad suprastume šias pagrindines operacijas. Tegul rinkinys1 = [1, 3, 2, 4, 8, 9, 0] ir rinkinys2 = [1, 3, 7, 5, 4, 0, 7, 5]. Tada galimos operacijos su rinkiniais yra šios:
1. Sankryža: Ši operacija grąžina visus bendrus elementus iš nurodytų dviejų rinkinių. Pirmiau minėtų dviejų rinkinių sankirta būtų tokia:
Intersection = [0, 1, 3, 4]>
2. Sąjunga: Ši operacija prideda visus vieno rinkinio elementus su kitu. Pirmiau minėtų dviejų rinkinių sąjunga būtų tokia:
Union = [0, 1, 2, 3, 4, 5, 7, 8, 9]>
3. Skirtumas: Ši operacija pašalina visas viename rinkinyje esančias reikšmes iš kito rinkinio. Pirmiau minėtų dviejų rinkinių skirtumas būtų toks:
Difference = [2, 8, 9]>
Dabar įgyvendinkime šias operacijas, kaip apibrėžta aukščiau:
Pavyzdys:
Java
jei kitaip, jei 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);> >}> }> |
>
>Išvestis
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]>
Įvairių operacijų atlikimas su SortedSet
Po įvedimo Generics Java 1.5 versijoje galima apriboti objektų, kurie gali būti saugomi rinkinyje, tipą. Kadangi Set yra sąsaja, ją galima naudoti tik su klase, kuri įgyvendina šią sąsają. HashSet yra viena iš plačiai naudojamų klasių, įgyvendinančių Set sąsają. Dabar pažiūrėkime, kaip atlikti keletą dažnai naudojamų „HashSet“ operacijų. Mes ketiname atlikti šias operacijas taip:
- Elementų pridėjimas
- Prieiga prie elementų
- Elementų pašalinimas
- Iteruojantys elementai
- Kartojimas per rinkinį
Dabar aptarkime šias operacijas atskirai taip:
1 operacijos: Elementų pridėjimas
Norėdami pridėti elementą prie rinkinio, galime naudoti add() metodas . Tačiau įterpimo tvarka rinkinyje neišsaugoma. Viduje kiekvienam elementui generuojama maiša, o reikšmės išsaugomos sugeneruotos maišos atžvilgiu. reikšmės lyginamos ir rūšiuojamos didėjančia tvarka. Turime nepamiršti, kad pasikartojantys elementai neleidžiami ir visi pasikartojantys elementai yra ignoruojami. Be to, rinkinys priima nulines reikšmes.
Pavyzdys
Java
// 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);> >}> }> |
>
>Išvestis
[A, B, C]>
2 operacija: Prieiga prie elementų
Pridėję elementus, jei norime pasiekti elementus, galime naudoti integruotus metodus, pvz., include() .
Pavyzdys
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));> >}> }> |
>
>Išvestis
Set is [A, B, C] Contains D false>
3 operacija: Vertybių pašalinimas
Vertes galima pašalinti iš rinkinio naudojant Remove() metodą .
Pavyzdys
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);> >}> }> |
>
>Išvestis
Initial HashSet [A, B, C, D, E] After removing element [A, C, D, E]>
4 operacija: Iteravimas per rinkinį
Yra įvairių būdų, kaip kartoti rinkinį. Garsiausias yra naudoti patobulintą kilpą.
Pavyzdys
Java
Jungtinių Valstijų kiek miestų
// 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();> >}> }> |
>
>Išvestis
A, B, C, D, E,>
Klasės, kurios įdiegia „Java“ kolekcijų sąsają „Set“, gali būti lengvai suvokiamos toliau pateiktame paveikslėlyje ir yra išvardytos taip:
- HashSet
- EnumSet
- LinkedHashSet
- Medžių rinkinys
1 klasė: HashSet
HashSet klasė, kuri yra įdiegta surinkimo sistema yra neatskiriamas įgyvendinimas Pavyzdys
Java
// 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());> >}> }> |
>
>Išvestis
[South Africa, Australia, India] Set after removing Australia:[South Africa, India] Iterating over set: South Africa India>
2 klasė: EnumSet
EnumSet klasė, kuri yra įdiegta kolekcijų sistema yra vienas iš specializuotų Set sąsajos diegimų, skirtų naudoti su surašymo tipas . Tai didelio našumo rinkinio diegimas, daug greitesnis nei HashSet. Visi sąrašo rinkinio elementai turi būti kilę iš vieno sąrašo tipo, kuris nurodomas tiesiogiai arba netiesiogiai sukuriant rinkinį. Pažiūrėkime, kaip sukurti rinkinio objektą naudojant šią klasę.
Pavyzdys
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);> >}> }> |
>
>Išvestis
Set 1: [CODE, LEARN, CONTRIBUTE, QUIZ]>
3 klasė: LinkedHashSet
LinkedHashSet klasė, kuri yra įdiegta kolekcijų sistema yra užsakyta HashSet versija, kuri palaiko dvigubai susietą visų elementų sąrašą. Kai reikia išlaikyti iteracijos tvarką, naudojama ši klasė. Kai kartojama per HashSet, tvarka yra nenuspėjama, o LinkedHashSet leidžia kartoti elementus tokia tvarka, kuria jie buvo įterpti. Pažiūrėkime, kaip sukurti rinkinio objektą naudojant šią klasę.
Pavyzdys
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());> >}> }> |
>
>Išvestis
[India, Australia, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>
4 klasė: Medžių rinkinys
TreeSet klasė, kuri yra įdiegta kolekcijų sistema ir SortedSet sąsajos įdiegimas ir SortedSet pratęsia rinkinio sąsają. Jis veikia kaip paprastas rinkinys, išskyrus tai, kad elementai saugomi surūšiuotu formatu. „TreeSet“ saugojimui naudoja medžio duomenų struktūrą. Objektai saugomi surūšiuota, didėjančia tvarka. Tačiau galime kartoti mažėjimo tvarka naudodami metodą TreeSet.descendingIterator(). Pažiūrėkime, kaip sukurti rinkinio objektą naudojant šią klasę.
Pavyzdys
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());> >}> }> |
Aktorė Rakul Preet Singh
>
>Išvestis
[Australia, India, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>