Asetettu käyttöliittymä on java.util-paketissa ja laajentaa sitä Kokoelman käyttöliittymä . Se on järjestämätön kokoelma objekteja, joihin ei voida tallentaa päällekkäisiä arvoja. Se on käyttöliittymä, joka toteuttaa matemaattisen joukon. Tämä käyttöliittymä sisältää Collection-liittymästä perityt menetelmät ja lisää ominaisuuden, joka rajoittaa päällekkäisten elementtien lisäämistä. On olemassa kaksi käyttöliittymää, jotka laajentavat joukon toteutusta, nimittäin SortedSet ja NavigableSet.

Yllä olevassa kuvassa navigoitava sarja laajentaa lajiteltujen joukon käyttöliittymää. Koska joukko ei säilytä lisäysjärjestystä, navigoitavan joukon käyttöliittymä tarjoaa toteutuksen joukossa liikkumiseen. Luokka, joka toteuttaa navigoitavan joukon, on TreeSet, joka on itsetasapainottavan puun toteutus. Siksi tämä käyttöliittymä tarjoaa meille tavan navigoida tässä puussa.
Ilmoitus: Aseta käyttöliittymä on ilmoitettu seuraavasti:
public interface Set extends Collection>
Joukkoobjektien luominen
Koska Set on an käyttöliittymä , objekteja ei voi luoda lajittelusta. Tarvitsemme aina luokan, joka laajentaa tätä luetteloa objektin luomiseksi. Ja myös käyttöönoton jälkeen Generics Java 1.5:ssä on mahdollista rajoittaa joukkoon tallennettavien objektien tyyppiä. Tämä tyyppiturvallinen sarja voidaan määritellä seuraavasti:
// Obj is the type of the object to be stored in Set Set set = new HashSet ();>
Tarkastellaanpa alla olevassa Set-rajapinnassa olevia menetelmiä alla olevassa taulukkomuodossa seuraavasti:
| Menetelmä | Kuvaus |
|---|---|
| lisää (elementti) | Tätä menetelmää käytetään tietyn elementin lisäämiseen joukkoon. Funktio lisää elementin vain, jos määritetty elementti ei ole jo joukossa, muuten funktio palauttaa False, jos elementti on jo joukossa. |
| addAll (kokoelma) | Tätä menetelmää käytetään liittämään kaikki elementit mainitusta kokoelmasta olemassa olevaan joukkoon. Elementit lisätään satunnaisesti noudattamatta mitään tiettyä järjestystä. |
| asia selvä() | Tätä menetelmää käytetään poistamaan kaikki elementit joukosta, mutta ei poista joukkoa. Viite sarjalle on edelleen olemassa. |
| sisältää (elementin) | Tätä menetelmää käytetään tarkistamaan, onko tietty elementti joukossa vai ei. |
| sisältääKaikki (kokoelma) | Tällä menetelmällä tarkistetaan, sisältääkö joukko kaikki annetussa kokoelmassa olevat elementit vai ei. Tämä menetelmä palauttaa tosi, jos joukko sisältää kaikki elementit, ja palauttaa epätosi, jos jokin elementeistä puuttuu. |
| hash koodin() | Tätä menetelmää käytetään joukon tämän esiintymän hashCode-arvon saamiseksi. Se palauttaa kokonaisluvun arvon, joka on tämän joukon esiintymän hashCode-arvo. |
| on tyhjä() | Tällä menetelmällä tarkistetaan, onko sarja tyhjä vai ei. |
| iteraattori() | Tätä menetelmää käytetään palauttamaan iteraattori sarjasta. Joukon elementit palautetaan satunnaisessa järjestyksessä. |
| poista (elementti) | Tätä menetelmää käytetään tietyn elementin poistamiseen joukosta. Tämä menetelmä palauttaa True, jos määritetty elementti on joukossa, muuten se palauttaa False. |
| poista kaikki (kokoelma) | Tätä menetelmää käytetään poistamaan kokoelmasta kaikki joukossa olevat elementit. Tämä menetelmä palauttaa tosi, jos tämä joukko muuttui kutsun seurauksena. |
| säilyttää kaikki (kokoelma) | Tätä menetelmää käytetään säilyttämään kaikki joukon elementit, jotka on mainittu annetussa kokoelmassa. Tämä menetelmä palauttaa tosi, jos tämä joukko muuttui kutsun seurauksena. |
| koko() | Tätä menetelmää käytetään joukon koon määrittämiseen. Tämä palauttaa kokonaislukuarvon, joka ilmaisee elementtien lukumäärän. |
| toArray() | Tätä menetelmää käytetään muodostamaan taulukko samoista elementeistä kuin Joukko. |
Kuva: Esimerkkiohjelma, jolla havainnollistetaan Aseta käyttöliittymä
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);> >}> }> |
>
>Lähtö
[Set, Example, Geeks, For]>
Toiminnot asetusliittymässä
Asetusliittymän avulla käyttäjät voivat suorittaa matemaattiset perustoiminnot laitteella. Otetaan kaksi taulukkoa ymmärtääksemme nämä perustoiminnot. Olkoon joukko1 = [1, 3, 2, 4, 8, 9, 0] ja joukko2 = [1, 3, 7, 5, 4, 0, 7, 5]. Sitten mahdolliset toiminnot sarjoissa ovat:
1. Risteys: Tämä toiminto palauttaa kaikki yhteiset elementit annetusta kahdesta joukosta. Kahden yllä olevan joukon leikkauspiste olisi:
Intersection = [0, 1, 3, 4]>
2. Unioni: Tämä toiminto lisää kaikki yhden joukon elementit toiseen. Edellä oleville kahdelle joukolle liitto olisi:
Union = [0, 1, 2, 3, 4, 5, 7, 8, 9]>
3. Ero: Tämä toiminto poistaa kaikki yhdessä joukossa olevat arvot toisesta joukosta. Kahden edellä mainitun sarjan ero olisi:
Difference = [2, 8, 9]>
Toteutetaan nyt seuraavat yllä määritellyt toiminnot seuraavasti:
Esimerkki:
Java
jaettu merkkijonolla 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);> >}> }> |
>
>Lähtö
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]>
Erilaisten toimintojen suorittaminen SortedSetillä
Esittelyn jälkeen Generics Java 1.5:ssä on mahdollista rajoittaa joukkoon tallennettavien objektien tyyppiä. Koska Set on rajapinta, sitä voidaan käyttää vain luokan kanssa, joka toteuttaa tämän rajapinnan. HashSet on yksi laajalti käytetyistä luokista, joka toteuttaa Set-rajapinnan. Katsotaanpa nyt, kuinka suorittaa muutamia usein käytettyjä toimintoja HashSetissä. Aiomme suorittaa seuraavat toimenpiteet seuraavasti:
- Elementtien lisääminen
- Elementtien käyttö
- Elementtien poistaminen
- Toistuvat elementit
- Iteroidaan joukon kautta
Keskustellaan nyt näistä toiminnoista erikseen seuraavasti:
Toiminnot 1: Elementtien lisääminen
Elementin lisäämiseksi joukkoon voimme käyttää add()-menetelmä . Lisäysjärjestystä ei kuitenkaan säilytetä sarjassa. Sisäisesti jokaiselle elementille luodaan tiiviste ja arvot tallennetaan suhteessa luotuun tiivisteeseen. arvoja verrataan ja lajitellaan nousevaan järjestykseen. Meidän on pidettävä mielessä, että päällekkäiset elementit eivät ole sallittuja ja kaikki päällekkäiset elementit ohitetaan. Lisäksi joukko hyväksyy nolla-arvot.
Esimerkki
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);> >}> }> |
>
>Lähtö
[A, B, C]>
Operaatio 2: Elementtien käyttö
Elementtien lisäämisen jälkeen, jos haluamme käyttää elementtejä, voimme käyttää sisäänrakennettuja menetelmiä, kuten include() .
Esimerkki
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));> >}> }> |
>
>
on yhtä kuin merkkijono javassaLähtö
Set is [A, B, C] Contains D false>
Operaatio 3: Arvojen poistaminen
Arvot voidaan poistaa joukosta käyttämällä remove()-metodia .
Esimerkki
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);> >}> }> |
>
>
java kartta esimerkkiLähtö
Initial HashSet [A, B, C, D, E] After removing element [A, C, D, E]>
Operaatio 4: Iteroidaan joukon kautta
On olemassa useita tapoja iteroida sarjan läpi. Tunnetuin on käyttää parannettua silmukkaa.
Esimerkki
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();> >}> }> |
>
>Lähtö
A, B, C, D, E,>
Luokat, jotka toteuttavat Set-rajapinnan Java-kokoelmissa, voidaan helposti havaita alla olevasta kuvasta seuraavasti, ja ne on lueteltu seuraavasti:
- HashSet
- EnumSet
- LinkedHashSet
- TreeSet
Luokka 1: HashSet
HashSet-luokka, joka on toteutettu keräyskehys on luontainen täytäntöönpano Esimerkki
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());> >}> }> |
>
>Lähtö
[South Africa, Australia, India] Set after removing Australia:[South Africa, India] Iterating over set: South Africa India>
Luokka 2: EnumSet
EnumSet-luokka, joka on toteutettu kokoelman puitteet on yksi Set-liittymän erikoistoteutuksista käytettäväksi luettelon tyyppi . Se on tehokas sarjatoteutus, paljon nopeampi kuin HashSet. Kaikkien luettelosarjan elementtien on oltava peräisin yhdestä luettelointityypistä, joka määritetään, kun joukko luodaan joko eksplisiittisesti tai implisiittisesti. Katsotaan kuinka luodaan joukkoobjekti tämän luokan avulla.
Esimerkki
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);> >}> }> |
>
>Lähtö
Set 1: [CODE, LEARN, CONTRIBUTE, QUIZ]>
Luokka 3: LinkedHashSet
LinkedHashSet-luokka, joka on toteutettu kokoelman puitteet on HashSetin tilattu versio, joka ylläpitää kaksoislinkitettyä luetteloa kaikista elementeistä. Tätä luokkaa käytetään, kun iteraatiojärjestys on säilytettävä. Kun iteroidaan HashSetin kautta, järjestys on arvaamaton, kun taas LinkedHashSet antaa meille mahdollisuuden iteroida elementtejä siinä järjestyksessä, jossa ne on lisätty. Katsotaan kuinka luodaan joukkoobjekti tämän luokan avulla.
Esimerkki
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());> >}> }> |
>
>Lähtö
[India, Australia, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>
Luokka 4: TreeSet
TreeSet-luokka, joka on toteutettu kokoelman puitteet ja SortedSet-liittymän ja SortedSetin käyttöönotto laajentaa sarjaliittymää. Se käyttäytyy kuin yksinkertainen joukko, paitsi että se tallentaa elementit lajiteltuun muotoon. TreeSet käyttää tallentamiseen puutietorakennetta. Objektit tallennetaan nousevassa järjestyksessä. Mutta voimme iteroida laskevassa järjestyksessä käyttämällä menetelmää TreeSet.descendingIterator(). Katsotaan kuinka luodaan joukkoobjekti tämän luokan avulla.
Esimerkki
alisa manyonok
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());> >}> }> |
>
>Lähtö
[Australia, India, South Africa] Set after removing Australia:[India, South Africa] Iterating over set: India South Africa>