set interface java
Ovaj vodič za postavljanje Java objašnjava sve o postavljenom sučelju u Javi. Obuhvaća način iteriranja kroz set, postavljanje metoda, implementaciju, postavljanje na popis itd.:
Set in Java je sučelje koje je dio Java Collection Framework-a i implementira sučelje Collection. Zbirka skupova pruža značajke matematičkog skupa.
Skup se može definirati kao kolekcija neuređenih objekata i ne može sadržavati dvostruke vrijednosti. Kako postavljeno sučelje nasljeđuje sučelje zbirke, ono implementira sve metode sučelja zbirke.
=> Ovdje pogledajte Savršeni vodič za Java obuku.
Što ćete naučiti:
Java set
Postavljeno sučelje provode klase i sučelja kako je prikazano na donjem dijagramu.
Kao što je prikazano na gornjem dijagramu, sučelje Set nasljeđuju klase, HashSet, TreeSet, LinkedHashSet i EnumSet. Sučelja SortedSet i NavigableSet također implementiraju Set sučelje.
Neke važne karakteristike sučelja Set date su u nastavku:
- Postavljeno sučelje dio je okvira Java Collections Framework.
- Postavljeno sučelje omogućuje jedinstvene vrijednosti.
- Može imati najviše jednu nulu vrijednost.
- Java 8 nudi zadanu metodu za postavljeno sučelje - Spliterator.
- Postavljeno sučelje ne podržava indekse elemenata.
- Postavljeno sučelje podržava generičke lijekove.
Kako stvoriti set?
Postavljeno sučelje u Javi dio je paketa java.util. Da bismo u program uključili postavljeno sučelje, moramo koristiti jednu od sljedećih izjava o uvozu.
import java.util.*;
ili
import java.util.Set;
Jednom kada je funkcionalnost postavljenog sučelja uključena u program, možemo stvoriti skup u Javi koristeći bilo koju od klasa skupova (klase koje implementiraju postavljeno sučelje) kako je prikazano u nastavku.
Set colors_Set = new HashSet();
Tada možemo pokrenuti ovaj postavljeni objekt dodavanjem nekoliko elemenata u njega pomoću metode add.
colors_Set.add(“Red”); colors_Set.add(“Green”); colors_Set.add(“Blue”);
Postavite primjer u Javi
Primijenimo jednostavan primjer u Javi za demonstraciju sučelja 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); } }
Izlaz:
Sadržaj skupa: (Crvena, Cijan, Plava, Magenta, Zelena)
Sortirano Postavljanje nakon pretvorbe u TreeSet: (Plava, Cijan, Zelena, Magenta, Crvena)
Iteracija kroz set u Javi
Svakom elementu skupa možemo pristupiti pomoću različitih pristupa. U nastavku ćemo razmotriti ove pristupe.
Korištenje Iteratora
Možemo definirati iterator za prelazak kroz postavljeni objekt. Pomoću ovog iteratora možemo pristupiti svakom elementu skupa i obraditi ga.
Sljedeći Java program prikazuje iteraciju kroz set i ispisuje elemente skupa.
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()+ ' '); } } }
Izlaz:
HashSet: (Bangaluru, Pune, Kolkata, Hyderabad)
Vrijednosti koje koriste Iterator:
Bangalore Pune Kolkata Hyderabad
Korištenje For-for Loop
Također možemo koristiti petlju za svaku za pristup elementima u skupu. Ovdje petlju ponavljamo kroz set.
Sljedeći program to pokazuje.
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 + ' '); } } }
Izlaz:
HashSet: (Bangaluru, Pune, Kolkata, Hyderabad)
Postavite sadržaj pomoću petlje forEach:
Bangalore Pune Kolkata Hyderabad
Korištenje Java 8 Stream API-ja
Također možemo ponoviti i pristupiti elementima skupa pomoću API-ja Java 8 stream. U tome generiramo tok iz skupa, a zatim prolazimo kroz tok pomoću forEach petlje.
Java program u nastavku prikazuje iteraciju skupa pomoću API-ja 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 + ' '); }); } }
Izlaz:
HashSet: (Bangaluru, Pune, Kolkata, Hyderabad)
Postavljanje sadržaja pomoću Java 8 stream API-ja:
Bangalore Pune Kolkata Hyderabad
Postavi API za metode
Dolje su navedene metode podržane od sučelja Set. Te metode izvode osnovne operacije poput dodavanja, uklanjanja, sadržavanja itd., Zajedno s ostalim operacijama.
kako napisati test slučajeve iz zahtjeva
Metoda | Prototip metode | Opis |
---|---|---|
prazno je | logički isEmpty () | Provjerava je li set prazan |
dodati | logički dodatak (E e) | Dodaje element e skupu ako nije prisutan u skupu |
Dodaj Sve | boolean addAll (Zbirka c) | Dodaje element kolekcije c skupu. |
ukloniti | logičko uklanjanje (objekt o) | Briše zadani element o iz skupa. |
ukloniti sve | boolean removeAll (Zbirka c) | Uklanja elemente prisutne u datoj zbirci c iz skupa. |
sadrži | boolean sadrži (objekt o) | Provjerava je li zadani element o prisutan u skupu. Vraća ako je da. |
sadržiSve | boolean containsAll (Zbirka c) | Provjerava sadrži li skup sve elemente u navedenoj zbirci; Vraća ako je da. |
zadržiSve | boolean retainAll (Zbirka c) | Set zadržava sve elemente u datoj zbirci c |
čisto | void clear () | Briše skup brišući sve elemente iz skupa |
iterator | Iterator iterator () | Koristi se za dobivanje iteratora za skup |
toArray | Objekt () uArray () | Pretvara skup u prikaz niza koji sadrži sve elemente u skupu. |
veličina | veličina int () | Vraća ukupan broj elemenata ili veličinu skupa. |
hashCode | hashCode () | Vraća hashCode skupa. |
Sada ćemo primijeniti neke od metoda o kojima smo gore raspravljali u Java programu. Također ćemo vidjeti sljedeće specifične operacije koje uključuju dva skupa.
Postavite implementaciju u Javi
Križanje: Zadržavamo zajedničke vrijednosti između dva skupa. Izvodimo raskrižje pomoću zadržiSve metoda.
Unija: Ovdje kombiniramo dva seta. To je učinjeno s Dodaj Sve metoda.
Razlika: Ova operacija uklanja jedan set iz drugog. Ova se operacija izvodi pomoću ukloniti sve 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); } }
Izlaz:
Izvorni set (numSet): (1, 2, 3, 4, 20, 6, 7, 8, 9, 11, 12, 13)
numSet Veličina: 12
Sadržaj OddSet: (1, 3, 5, 7, 9)
numSet sadrži element 2: true
numSet sadrži zbirku oddset: false
Presjek numSet i oddSet: (1, 3, 7, 9)
Razlika u numSet & oddSet: (2, 4, 6, 8, 11, 12, 13, 20)
Unija numSet i oddSet: (1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 20)
Postavi na niz
Vidjeli smo metodu 'toArray' u gornjem odjeljku o metodama. Ova metoda toArray može se koristiti za pretvaranje skupa u niz.
Java program u nastavku pretvara Set u niz.
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)); } }
Izlaz:
Sadržaj kompleta: (Crvena, Cijan, Plava, Magenta, Zelena)
Postavljeno pretvoreno u niz: (crvena, cijan, plava, magenta, zelena)
Niz za postavljanje
Za pretvaranje niza u skup u Javi možemo slijediti dva pristupa kako je prikazano u nastavku.
# 1) Možemo pretvoriti niz u popis pomoću metode asList, a zatim taj popis proslijediti kao argument konstruktoru skupa. To rezultira stvaranjem objekta skupa s elementima niza.
#dva) Alternativno, možemo koristiti metodu Collections.addAll za kopiranje elemenata niza u postavljeni objekt.
Pitanja i odgovori za ms sql server intervju za iskusne
Java program u nastavku primjenjuje oba ova pristupa za pretvaranje niza u set.
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); } }
Izlaz:
Ulazni niz: (10, 50, 40, 20, 60, 30, 80, 70)
Niz pretvoren u postavljen kroz asList: (80, 50, 20, 70, 40, 10, 60, 30)
Niz pretvoren u skup pomoću Collections.addAll: (80, 50, 20, 70, 40, 10, 60, 30)
Postavi na popis
Za pretvorbu skupa na popis u Javi možemo koristiti metodu 'addAll' klase popisa. Ova metoda kopira sadržaj skupa ili bilo koje kolekcije koja se pruža kao argument na popis koji poziva metodu addAll.
Java program u nastavku pretvara skup u 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); } }
Izlaz:
Sadržaj skupa: (četiri, jedan, dva, tri, pet)
ArrayList iz skupa: (četiri, jedan, dva, tri, pet)
Popis za postavljanje
Da bismo zadani popis poput ArrayList pretvorili u skup u Javi, prosljeđujemo objekt popisa kao argument konstruktoru skupa.
Sljedeći Java program provodi ovu pretvorbu.
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); } }
Izlaz:
Lista array: (jedan, dva, tri, četiri, pet)
Skup dobiven iz ArrayList: (četiri, jedan, dva, tri, pet)
Poredaj set u Javi
Zbirka Set na Javi nema izravnu metodu sortiranja. Stoga moramo slijediti neke neizravne pristupe za sortiranje ili uređivanje sadržaja postavljenog objekta. Međutim, postoji iznimka u slučaju da je postavljeni objekt TreeSet.
Objekt TreeSet prema zadanim postavkama pruža poredani skup. Stoga, ako smo zainteresirani za uređeni skup elemenata, trebali bismo odabrati TreeSet. Za HashSet ili LinkedHashSet objekte, možemo pretvoriti skup u List. Poredajte Popis metodom Collections.sort (), a zatim popis pretvorite u postavljeni.
Ovaj pristup prikazan je u donjem Java programu.
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); } }
Izlaz:
Nerazvrstani set: (4, 8, 6, 2, 12, 10, 62, 40, 36)
Poredani skup: (2, 4, 6, 8, 10, 12, 36, 40, 62)
Popis Vs postavljenih u Javi
Razgovarajmo o nekim razlikama između popisa i skupa.
Popis | Postavi |
---|---|
Dopuštene su null vrijednosti. | Dopuštena je samo jedna null vrijednost. |
Provodi sučelje popisa. | Provodi Set sučelja. |
Sadrži naslijeđenu klasu, Vector. | Nema naslijeđenih predavanja. |
ArrayList, LinkedList je implementacija sučelja s popisa. | HashSet, TreeSet, LinkedHashSet su implementacije skupova. |
Uređeni slijed elemenata. | Neuređena zbirka različitih elemenata. |
Omogućuje duplikate. | Nisu dopušteni duplikati. |
Može pristupiti elementima prema položaju elementa. | Nema pozicijskog pristupa. |
Nove metode definirane u sučelju popisa. | U postavljenom sučelju nisu definirane nove metode. Metode sučelja za prikupljanje trebaju se koristiti s podrazredima Set. |
Može se kretati u smjeru naprijed i natrag pomoću ListIterator. | Preko Iteratora može se prijeći samo u smjeru naprijed. |
Često postavljana pitanja
P # 1) Što je skup u Javi?
Odgovor: Skup je nesređena zbirka jedinstvenih elemenata i obično modelira koncept skupa u matematici.
Set je sučelje koje proširuje sučelje zbirke. Sadrži metode koje nasljeđuje od sučelja Collection. Postavljeno sučelje dodaje samo ograničenje, tj. Ne smiju biti dopušteni duplikati.
P # 2)Je li Set uređen na Javi?
Odgovor: Ne. Java Set nije naručen. Ne pruža i pozicijski pristup.
3. pitanje)Može li set sadržavati duplikate?
Odgovor: Skup je zbirka jedinstvenih elemenata, ne može imati duplikate.
P # 4)Je li Java Set iterable?
Odgovor: Da. Postavljeno sučelje implementira Iterable sučelje i tako se skupu može prelaziti ili ponavljati pomoću forEach petlje.
5. pitanje)Je li NULL dopušteno u setu?
Odgovor: Skup dopušta null vrijednost, ali najviše je jedna null vrijednost dopuštena u implementacijama skupova poput HashSet i LinkedHashSet. U slučaju TreeSet, baca izuzetak tijekom izvođenja ako je navedena null.
Zaključak
U ovom uputstvu raspravljali smo o općim konceptima i implementaciji vezanim uz Set sučelja u Javi.
Postavljeno sučelje nema definirane nove metode, ali koristi metode sučelja Collector i samo dodaje implementaciju za zabranu dvostrukih vrijednosti. Skup dopušta najviše jednu null vrijednost.
U našim sljedećim vodičima razgovarat ćemo o određenim implementacijama Set sučelja poput HashSet-a i TreeSet-a.
=> Posjetite ovdje da biste naučili Javu ispočetka.
Preporučena literatura
- Java Vodič za refleksiju s primjerima
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala
- Java String sadrži () Vodič za metode s primjerima
- Nazubljeni niz u Javi - Vodič s primjerima
- Vodič za razred Java Scannera s primjerima
- Vodič za dužinu Java polja s primjerima koda
- Java String Vodič | Metode Java niza s primjerima
- Što je Java Vector | Vodič za Java Vector Class s primjerima