set interface java
Ta vadnica Java Set pojasnjuje vse o nastavljenem vmesniku v Javi. Zajema, kako itirirati skozi niz, nastaviti metode, implementacijo, nastaviti na seznam itd.:
Set in Java je vmesnik, ki je del Java Collection Framework in izvaja vmesnik Collection. Zbirka naborov ponuja lastnosti matematičnega nabora.
Nabor lahko definiramo kot zbirko neurejenih predmetov in ne sme vsebovati podvojenih vrednosti. Ker nastavljeni vmesnik podeduje vmesnik Collection, izvaja vse metode vmesnika Collection.
=> Tukaj si oglejte Perfect Guide Training Guide.
Kaj se boste naučili:
Java Set
Nastavljeni vmesnik izvajajo razredi in vmesniki, kot je prikazano na spodnjem diagramu.
Kot je prikazano v zgornjem diagramu, vmesnik Set podedujejo razredi, HashSet, TreeSet, LinkedHashSet in EnumSet. Vmesnika SortedSet in NavigableSet prav tako izvajata Set interface.
Nekatere pomembne značilnosti vmesnika Set so navedene spodaj:
- Nastavljeni vmesnik je del ogrodja zbirk Java.
- Nastavljeni vmesnik omogoča enolične vrednosti.
- Lahko ima največ eno ničelno vrednost.
- Java 8 ponuja privzeto metodo za nastavljeni vmesnik - Spliterator.
- Nastavljeni vmesnik ne podpira indeksov elementov.
- Nastavljeni vmesnik podpira generike.
Kako ustvariti komplet?
Nastavljeni vmesnik v Javi je del paketa java.util. Za vključitev nastavljenega vmesnika v program moramo uporabiti enega od naslednjih stavkov za uvoz.
import java.util.*;
ali
import java.util.Set;
Ko je v program vključena funkcionalnost nastavljenega vmesnika, lahko v Javi ustvarimo nabor z uporabo katerega koli od nastavljenih razredov (razredov, ki izvajajo vmesnik set), kot je prikazano spodaj.
Set colors_Set = new HashSet();
Ta nastavljeni objekt lahko nato inicializiramo tako, da mu dodamo nekaj elementov z uporabo metode add.
colors_Set.add(“Red”); colors_Set.add(“Green”); colors_Set.add(“Blue”);
Postavite primer v Javi
Izvedimo preprost primer v Javi za prikaz vmesnika Set.
import java.util.*; public class Main { public static void main(String() args) { // Set demo with HashSet Set Colors_Set = new HashSet(); Colors_Set.add('Red'); Colors_Set.add('Green'); Colors_Set.add('Blue'); Colors_Set.add('Cyan'); Colors_Set.add('Magenta'); //print set contents System.out.print('Set contents:'); System.out.println(Colors_Set); // Set demo with TreeSet System.out.print('
Sorted Set after converting to TreeSet:'); Set tree_Set = new TreeSet(Colors_Set); System.out.println(tree_Set); } }
Izhod:
Vsebina kompleta: (rdeča, modra, modra, magenta, zelena)
Razvrščeno po pretvorbi v TreeSet: (modra, modra, zelena, magenta, rdeča)
Ponavljanje skozi nabor v Javi
Do različnih elementov nabora lahko dostopamo z različnimi pristopi. O teh pristopih bomo razpravljali spodaj.
Uporaba Iteratorja
Določimo lahko iterator za prehod skozi nastavljeni objekt. S pomočjo tega iteratorja lahko dostopamo do vsakega elementa v nizu in ga obdelamo.
Naslednji program Java prikazuje ponovitev skozi nabor in natisne elemente nabora.
import java.util.*; import java.util.HashSet; public class Main { public static void main(String args()) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); // Create an iterator for the cities_Set Iterator iter = cities_Set.iterator(); // print the set contents using iterator System.out.println('Values using Iterator: '); while (iter.hasNext()) { System.out.print(iter.next()+ ' '); } } }
Izhod:
HashSet: (Bangaluru, Puna, Kolkata, Hyderabad)
Vrednosti, ki uporabljajo Iterator:
Bangalore Pune Kolkata Hyderabad
Uporaba For-for Loop
Za dostop do elementov v nizu lahko uporabimo tudi zanko for-each. Tukaj v zanki ponovimo niz.
Naslednji program to dokazuje.
import java.util.*; import java.util.HashSet; public class Main { public static void main(String args()) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); System.out.println('
Set contents using forEach loop:'); // print the set contents using forEach loop for(String val : cities_Set) { System.out.print(val + ' '); } } }
Izhod:
HashSet: (Bangaluru, Puna, Kolkata, Hyderabad)
Nastavite vsebino z uporabo zanke forEach:
Bangalore Pune Kolkata Hyderabad
Uporaba Java 8 Stream API
Elemente nabora lahko tudi ponavljamo in dostopamo z API-jem Java 8 stream. Pri tem iz niza ustvarimo tok in nato skozi tok foreach ponovimo tok.
Spodnji program Java prikazuje ponovitev nabora z API-jem Java 8 stream.
import java.util.*; import java.util.HashSet; import java.util.stream.*; public class Main { public static void main(String args()) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); System.out.println('
Set contents using Java 8 stream API:'); //generate a stream from set Stream stream = cities_Set.stream(); //iterate the stream using forEach loop to print the elements stream.forEach((element) -> { System.out.print(element + ' '); }); } }
Izhod:
HashSet: (Bangaluru, Puna, Kolkata, Hyderabad)
Nastavite vsebino s pomočjo API-ja Java 8 stream:
Bangalore Pune Kolkata Hyderabad
Nastavite API za metode
Spodaj so navedene metode, ki jih podpira vmesnik Set. Te metode izvajajo osnovne operacije, kot so dodajanje, odstranjevanje, shranjevanje itd., Skupaj z drugimi operacijami.
razlika med testiranjem bele škatle in črne škatle
Metoda | Prototip metode | Opis |
---|---|---|
je prazno | logična isEmpty () | Preveri, ali je komplet prazen |
dodajte | logični dodatek (E e) | Elementu e doda nabor, če v naboru ni prisoten |
addAll | boolean addAll (zbirka c) | V nabor doda element zbirke c. |
Odstrani | logično odstranjevanje (objekt o) | Izbriše dani element o iz nabora. |
odstrani vse | boolean removeAll (zbirka c) | Odstrani elemente iz dane zbirke c iz nabora. |
vsebuje | logična vrednost vsebuje (predmet o) | Preveri, ali je dani element o prisoten v nizu. Vrne true, če da. |
vsebuje vse | boolean containsAll (zbirka c) | Preveri, ali niz vsebuje vse elemente v navedeni zbirki; Vrne true, če da. |
retainAll | boolean retainAll (zbirka c) | Set ohrani vse elemente v dani zbirki c |
jasno | prazno jasno () | Počisti nabor tako, da iz njega izbriše vse elemente |
iterator | Iterator iteratorja () | Uporablja se za pridobitev iteratorja za nabor |
toArray | Object () toArray () | Pretvori niz v predstavitev matrike, ki vsebuje vse elemente v nizu. |
velikost | velikost int () | Vrne skupno število elementov ali velikost nabora. |
hashCode | hashCode () | Vrne hashCode nabora. |
Zdaj pa uporabimo nekatere metode, ki smo jih obravnavali zgoraj v programu Java. Videli bomo tudi naslednje posebne operacije, ki vključujejo dva niza.
Nastavite izvajanje v Javi
Križišče: Med obema nizoma ohranjamo skupne vrednote. Izvajamo križišče s pomočjo retainAll metoda.
Zveza: Tu združimo dva sklopa. To se naredi z addAll metoda.
Razlika: S tem postopkom odstranite en niz iz drugega. Ta postopek se izvede z uporabo odstrani vse metoda.
import java.util.*; public class Main { public static void main(String args()) { //declare a set class (HashSet) Set numSet = new HashSet(); //add an element => add numSet.add(13); //add a list to the set using addAll method numSet.addAll(Arrays.asList(new Integer() {1,6,4,7,3,9,8,2,12,11,20})); //print the set System.out.println('Original Set (numSet):' + numSet); //size() System.out.println('
numSet Size:' + numSet.size()); //create a new set class and initialize it with list elements Set oddSet = new HashSet(); oddSet.addAll(Arrays.asList(new Integer() {1, 3, 7, 5, 9})); //print the set System.out.println('
OddSet contents:' + oddSet); //contains () System.out.println('
numSet contains element 2:' + numSet.contains(3)); //containsAll () System.out.println('
numSet contains collection oddset:' + numSet.containsAll(oddSet)); // retainAll () => intersection Set set_intersection = new HashSet(numSet); set_intersection.retainAll(oddSet); System.out.print('
Intersection of the numSet & oddSet:'); System.out.println(set_intersection); // removeAll () => difference Set set_difference = new HashSet(numSet); set_difference.removeAll(oddSet); System.out.print('Difference of the numSet & oddSet:'); System.out.println(set_difference); // addAll () => union Set set_union = new HashSet(numSet); set_union.addAll(oddSet); System.out.print('Union of the numSet & oddSet:'); System.out.println(set_union); } }
Izhod:
Izvirni komplet (numSet): (1, 2, 3, 4, 20, 6, 7, 8, 9, 11, 12, 13)
numSet Velikost: 12
Vsebina OddSet: (1, 3, 5, 7, 9)
numSet vsebuje element 2: true
numSet vsebuje zbirko oddset: false
Presečišče numSet & oddSet: (1, 3, 7, 9)
Razlika v numSet & oddSet: (2, 4, 6, 8, 11, 12, 13, 20)
Zveza numSet & oddSet: (1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 20)
Nastavi na matriko
V zgornjem poglavju o metodah smo videli metodo 'toArray'. To metodo toArray lahko uporabite za pretvorbo nabora v matriko.
Spodnji program Java pretvori Set v matriko.
import java.util.*; public class Main { public static void main(String() args) { //declare a set class (HashSet) Set setOfColors= new HashSet(); // add data to HashSet setOfColors.add('Red'); setOfColors.add('Green'); setOfColors.add('Blue'); setOfColors.add('Cyan'); setOfColors.add('Magenta'); //print the set System.out.println('The set contents:' + setOfColors); //convert Set to Array using toArray () method String colors_Array() = setOfColors.toArray(new String(setOfColors.size())); //print the Array System.out.println('Set converted to Array:' + Arrays.toString(colors_Array)); } }
Izhod:
Vsebina kompleta: (rdeča, modra, modra, magenta, zelena)
Nastavitev pretvorjena v matriko: (rdeča, modra, modra, magenta, zelena)
Niz za nastavitev
Za pretvorbo polja v niz v Javi lahko sledimo dvema pristopoma, kot je prikazano spodaj.
# 1) Array lahko pretvorimo v seznam z uporabo metode asList in ga nato posredujemo kot argument konstruktorju nastavitev. Rezultat tega je, da je nastavljeni objekt ustvarjen z elementi matrike.
#two) Lahko pa uporabimo metodo Collections.addAll za kopiranje elementov polja v nastavljeni objekt.
Spodnji program Java izvaja oba pristopa za pretvorbo niza v nastavljeno.
import java.util.*; public class Main { public static void main(String() args) { //declare an array Integer() numArray = {10,50,40,20,60,30,80,70}; System.out.println('The input array:' + Arrays.toString(numArray)); //Approach 1: create a set class and provide array //converted to list as constructor arg Set numSet = new HashSet(Arrays.asList(numArray)); //print the set System.out.println('
Array converted to set through asList:' + numSet); //create another set Set intSet = new HashSet(); //Approach 2: use Collections.addAll method to copy array elements to the set Collections.addAll(intSet, numArray); //print the set System.out.println('
Array converted to set using Collections.addAll:' + intSet); } }
Izhod:
Vhodna matrika: (10, 50, 40, 20, 60, 30, 80, 70)
Polje pretvorjeno v nastavljeno prek asList: (80, 50, 20, 70, 40, 10, 60, 30)
Niz pretvorjen v nabor z uporabo Collections.addAll: (80, 50, 20, 70, 40, 10, 60, 30)
Nastavi na seznam
Za pretvorbo nabora v seznam v Javi lahko uporabimo metodo 'addAll' razreda seznama. Ta metoda kopira vsebino nabora ali katero koli zbirko, ki je na voljo kot argument, na seznam, ki prikliče metodo addAll.
Spodnji program Java pretvori nabor v ArrayList.
import java.util.*; public class Main { public static void main(String() args) { //declare a set class and initialize it Set strSet= new HashSet(); strSet.add('one'); strSet.add('two'); strSet.add('three'); strSet.add('four'); strSet.add('five'); //print the set System.out.println('The set contents: ' + strSet); //declare an ArrayList List strList = new ArrayList(); //using addAll method,copy set elements to ArrayList strList.addAll(strSet); //print the ArrayList System.out.println('The ArrayList from set : ' + strList); } }
Izhod:
Vsebina kompleta: (štiri, ena, dve, tri, pet)
ArrayList iz nabora: (štiri, ena, dve, tri, pet)
Seznam za nastavitev
Za pretvorbo danega seznama, kot je ArrayList, v nabor v Javi, objekt predmeta seznam posredujemo kot argument konstruktorju nabora.
Naslednji program Java izvaja to pretvorbo.
import java.util.*; public class Main { public static void main(String() args) { //declare an ArrayList and initialize it List strList = new ArrayList(); strList.add('one'); strList.add('two'); strList.add('three'); strList.add('four'); strList.add('five'); //print the ArrayList System.out.println('The ArrayList: ' + strList); //declare a set class with ArrayList as argument to the constructor Set strSet= new HashSet(strList); //print the set System.out.println('The Set obtained from ArrayList: ' + strSet); } }
Izhod:
ArrayList: (ena, dve, tri, štiri, pet)
Komplet, pridobljen iz ArrayList: (štiri, ena, dve, tri, pet)
Razvrsti niz v Javi
Zbirka Set v Javi nima neposrednega načina razvrščanja. Zato moramo slediti nekaterim posrednim pristopom za razvrščanje ali urejanje vsebine nastavljenega predmeta. Vendar pa obstaja izjema, če je nastavljeni objekt TreeSet.
Objekt TreeSet privzeto zagotavlja urejeni niz. Če smo navdušeni nad urejenim naborom elementov, bi morali uporabiti TreeSet. Za HashSet ali LinkedHashSet, lahko nabor pretvorimo v seznam. Seznam razvrstite z uporabo metode Collections.sort () in nato seznam pretvorite nazaj v nastavljeno.
Ta pristop je prikazan v spodnjem programu Java.
import java.util.Arrays; import java.util.Collections; import java.util.*; public class Main{ public static void main(String() args) { //Declare a set and initialize it with unsorted list HashSet evenNumSet = new LinkedHashSet( Arrays.asList(4,8,6,2,12,10,62,40,36) ); //print the unsorted set System.out.println('Unsorted Set: ' + evenNumSet); //convert set to list List numList = new ArrayList(evenNumSet); //Sort the list using Collections.sort () method Collections.sort(numList); //convert set to list evenNumSet = new LinkedHashSet(numList); //convert list to set //Print the sorted set System.out.println('Sorted Set:' + evenNumSet); } }
Izhod:
Nerazvrščen niz: (4, 8, 6, 2, 12, 10, 62, 40, 36)
Razvrščen niz: (2, 4, 6, 8, 10, 12, 36, 40, 62)
Seznam Vs nastavljen v Javi
Pogovorimo se o nekaterih razlikah med seznamom in nizom.
Seznam | Nastavite |
---|---|
Dovoljene so ničelne vrednosti. | Dovoljena je samo ena ničelna vrednost. |
Izvaja vmesnik seznama. | Implementira Set vmesnik. |
Vsebuje razred Legacy, Vector. | Brez zapuščinskih razredov. |
ArrayList, LinkedList je izvedba vmesnika seznama. | HashSet, TreeSet, LinkedHashSet so Set izvedbe. |
Urejeno zaporedje elementov. | Neurejena zbirka različnih elementov. |
Omogoča dvojnike. | Dvojniki niso dovoljeni. |
Dostop do elementov glede na položaj elementa. | Brez pozicijskega dostopa. |
Nove metode, opredeljene v vmesniku seznama. | V vmesniku Set ni opredeljenih nobenih novih metod. Z nastavitvenimi podrazredi je treba uporabiti metode vmesnika za zbiranje. |
Lahko se premika v smeri naprej in nazaj s pomočjo ListIterator. | Z Iteratorjem se lahko premika le v smeri naprej. |
Pogosto zastavljena vprašanja
V # 1) Kaj je nabor v Javi?
Odgovor: Niz je neurejena zbirka unikatnih elementov in v matematiki običajno modelira koncept množice.
Set je vmesnik, ki razširja vmesnik zbirke. Vsebuje metode, ki jih podeduje po vmesniku zbirke. Nastavljeni vmesnik doda samo omejitev, tj. Podvojitve ne smejo biti dovoljene.
Q # 2)Ali je Set urejen v Javi?
Odgovor: Ne. Nabor Java ni naročen. Ne zagotavlja tudi položajnega dostopa.
to vprašanja in odgovori za intervjuje s tehnično podporo
Q # 3)Ali lahko komplet vsebuje dvojnike?
Odgovor: Komplet je zbirka unikatnih elementov, ne more imeti nobenih dvojnikov.
Q # 4)Je Java Set iterable?
Odgovor: Da. Set vmesnika izvaja vmesnik Iterable in ga je tako mogoče prehoditi ali iterirati z zanko forEach.
V # 5)Ali je v kompletu dovoljeno NULL?
Odgovor: Nabor omogoča ničelno vrednost, vendar je v izvedbah niza, kot sta HashSet in LinkedHashSet, dovoljena največ ena ničelna vrednost. V primeru TreeSet vrže izjemo med izvajanjem, če je podana ničelna vrednost.
Zaključek
V tej vadnici smo razpravljali o splošnih konceptih in izvedbi, povezanih z nastavitvijo vmesnika v Javi.
Nastavljeni vmesnik nima opredeljenih nobenih novih metod, uporablja pa metode vmesnika Collector in dodaja samo izvajanje, da prepove podvojene vrednosti. Nabor omogoča največ eno ničelno vrednost.
V naslednjih vajah bomo razpravljali o posebnih izvedbah vmesnika Set, kot sta HashSet in TreeSet.
=> Obiščite tukaj, če se želite naučiti Jave iz nič.
Priporočeno branje
- Vadnica za refleksijo Java s primeri
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Java String vsebuje () Vadnico metode s primeri
- Nazobčan niz v Javi - Vadnica s primeri
- Vadnica razreda Java Scanner Class z primeri
- Vadnica za dolžino polja Java s primeri kode
- Vadnica za Java String | Nizovske metode Java s primeri
- Kaj je Java Vector | Vadnica Java Vector Class s primeri