Java HashSet on yksi tärkeimmistä näkökohdista . Sitä käytetään tyypillisesti ainutlaatuisten arvojen tallentamiseen järjestämättömällä tavalla. Tämän Java-julkaisun HashSet-artikkelin välityksellä annan sinulle täydellisen läpikäynnin siitä, mikä on HashSet ja miten voit käyttää sitä sovelluksessasi.
Tässä ovat tämän artikkelin aiheet:
- HashSet Java-sovelluksessa
- Java HashSet vs HashMap
- HashSet-hierarkia
- Java.util.HashSet-luokan rakentajat
- Java.util.HashSet-luokan menetelmät
- HashSetin käyttöönotto Java-ohjelmassa
Aloitetaan ensin ymmärtämällä, mitä HashSet on Java.
HashSet Java-sovelluksessa
java.util.HashSet luokassa on Java-kokoelmakehyksen jäsen, jokaperii AbstractSet-luokan jatoteuttaaAseta käyttöliittymä . Se toteuttaa implisiittisesti hashtabelin ainutlaatuisten elementtien kokoelman luomiseksi ja tallentamiseksi. Hashtable ei ole muuta kuin HashMap-luokan ilmentymä, joka käyttää hajautusmekanismia tietojen tallentamiseen HashSetiin.
Hajautus on prosessi, jolla informaatio-sisältö muunnetaan ainutlaatuiseksi arvoksi, joka tunnetaan yleisemmin hash-koodina. Tätä hajautuskoodia käytetään sitten avaimeen liittyvän datan indeksointiin. Koko prosessi, jolla informaatioavain muunnetaan hashkoodiksi, suoritetaan sisäisesti.
Jotta voin ymmärtää paremmin Java-ohjelmiston HashSetiä, haluan luetella muutamia sen ominaisuuksia:
- HashSet Java -ohjelmassa ei salli päällekkäisiä arvoja.
- Se voi sisältää nolla-arvoja.
- HashSet ei noudata lisäysjärjestystä tietojen tallentamisessa, vaan käyttää hashkoodia indeksoimaan arvot sisällä.
- Se ei ole synkronoitu mikä tekee siitä langattomasti vaarallisen.
- HashSet-luokka toteuttaa myös Cloneable andSarjoitettavat rajapinnat.
Nyt kun olet tietoinen siitä, mikä HashSet tarkalleen on Java, siirrytään eteenpäin tämän artikkelin kanssa ja selvitetään HashMapin ja HashSetin Java-erot.
Java HashSet vs HashMap
HashSet | HashMap |
Toteutusjava.util.Aseta käyttöliittymä | Toteutusjava.util.Kartta |
Tallentaa tiedot esineinä | Tallentaa tiedot avain-arvo-parin muodossa |
HashSet vaatii vain yhden parametrin objektin alustamiseen | Se vaatii kahta parametria (avain, arvo) objektin alustamiseen |
Ei salli päällekkäisiä elementtejä | Ei salli päällekkäisiä avaimia, mutta voit tallentaa päällekkäisiä arvoja |
Sallii yhden nolla-arvon | Sallii yhden nolla-avaimen ja minkä tahansa määrän nolla-arvoja |
HashSet käytä add ()menetelmä tietojen lisäämiseksi tai tallentamiseksi | HashMap käyttää put () -menetelmää tietojen tallentamiseen |
Nyt kun sinulla on selkeä ero HashMapin ja HashSetin välillä, keskitymme nyt taas HashSetiin ja sukelkaamme siihen syvemmälle. Tämän artikkelin seuraavassa osassa esitän sinut HashSetin täydelliseen hierarkiaan Java-ohjelmassa.
kuinka asettaa luokkatie Java-käyttöjärjestelmään Windows 10: ssä
HashSet-hierarkia Javalla
Kuten alla olevasta kaaviosta näet,HashSet-luokka toteuttaa Set-käyttöliittymän. Set-rajapinta perii edelleen Collection-käyttöliittymän, joka lopulta laajentaa Iterable-käyttöliittymää hierarkkisessa järjestyksessä.
Nyt, siirtymällä eteenpäin tämän Java-artikkelin HashSetin kanssa, katsotaanpa erilaisia rakentajat tämä luokka tukee.
Java.util.HashSet-luokan rakentajat
Rakentaja | Kuvaus |
HashSet () | Tämä on HashSet-luokan oletusrakentaja |
HashSet (sis. Kapasiteetti) | Tätä konstruktoria käytetään alustamaan hajautusjoukon alkukapasiteetti. Kapasiteetti voi kasvaa dynaamisesti lisäämällä uusia elementtejä |
HashSet (int-kapasiteetti, uimakapasiteetti) | Tätä konstruktoria käytetään alustamaan tiivisteen alkukapasiteetti yhdessä kuormituskapasiteetin kanssa |
HashSet (kokoelma c) | Tätä konstruktoria käytetään alustamiseenhajautus määritetään käyttämällä kokoelman c elementtejä |
Nämä olivat neljä HashSet-luokan rakentajaa vuonna . Selvitetään nyt, mitkä ovat erilaiset määritelty Java HashSet -sovelluksessa.
Java.util.HashSet-luokan menetelmät
Menetelmä | Kuvaus |
looginen lisäys (Object obj) | Tämä menetelmä auttaa lisäämään määritetyn elementin HashSetiin vain, jos sitä ei ole läsnä |
mitätön selvä () | Tämä menetelmä auttaa poistamaan kaikki elementit HashSetistä |
Objektiklooni () | Tämä menetelmä palauttaa matalan kopion HashSet-ilmentymästä HashSet-elementtien kloonien sijaan |
totuusarvo sisältää (Object o) | Tämä menetelmä palauttaa arvon tosi, jos välitetty elementti on läsnä HashSetissä |
totuusarvo onTyhjä () | Tämä menetelmä palauttaa arvon tosi, jos HashSet on tyhjä |
Iteraattori-iteraattori () | Tämä menetelmä palauttaa iteraattorin HashSetissä olevien elementtien yli |
looginen poisto (Object o) | Tämä menetelmä auttaa poistamaan määritetyn elementin HashSetistä, jos se on läsnä |
int-koko () | Tämä menetelmä palauttaa HashSetissä olevien elementtien kokonaismäärän |
Yllä mainittujen menetelmien ohella Java-niminen HashSet-luokka sisältää myös sen superluokista.
Yritetään nyt toteuttaa nämä menetelmät ja kastaa jalkamme koodauksella.
HashSetin käyttöönotto Java-ohjelmassa
Seuraavassa esimerkissä yritämme toteuttaa useita HashSet-luokan tarjoamia menetelmiä.
Tuo java.util.HashSet Tuo java.util. * public class SampleHashSet {public static void main (String [] args) {// HashSet Setin luominen eduCourses = new HashSet () // Uusien elementtien lisääminen HashSet eduCourses.add ('Big Data') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. add ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // Päällekkäisten elementtien lisääminen jätetään huomioimatta eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Tarkista, sisältääkö HashSet tietyn elementin String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ') on kurssiluettelossa. ')} else {System.out.println (myCourse +' ei ole kurssiluettelossa. ')} // eduCourses-ohjelmien lajittelu luetteloluettelon avulla = new ArrayList (eduCourses) Collections.sort (list) // HashSet System.out.println (': n lajiteltujen elementtien tulostaminen Kurssien tulostaminen järjestyksessä käyttämällä luetteloa: '+ luettelo) // Kohteiden poistaminen HashSetistä poistamalla () eduCourses.remove (' Python ') // Iterating HashSet items System.out.println (' Kurssiluettelon iterointi poistamisen jälkeen Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // HashSetin toisen objektin luominen HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Kaikkien uusien elementtien poistaminen HashSetistä eduCourses.removeAll (eduNewCourses) System.out.println ('RemoveAll ( jäljellä olevat metodikurssit: '+ eduCourses) // Elementtien poistaminen määritetyn ehdon perusteella eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' removeIf () -menetelmän kutsumisen jälkeen: '+ eduCourses) // Elementtien poistaminen eduCoursesista, jotka on määritelty eduNewCoursesissa eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet' + 'retainAll () -operaation jälkeen: '+ eduNewCourses) // Kaikkien asetettujen eduCourses.clear () System.out.println -elementtien poistaminen (' clear () -menetelmän kutsumisen jälkeen: '+ eduCourses)}}
Kun suoritat yllä olevan koodin, se antaa sinulle alla olevan kuvan.
pl sql -kehittäjän opetus aloittelijoille
Tämän avulla olemme tämän artikkelin lopussa. Toivon, että pystyin pitämään käsitteet selkeinä ja selkeinä. Voit oppia lisää käymällä läpi meidän .
Nyt kun olet ymmärtänyt, mikä on HashSet Java-sovelluksessa, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia Java-kehyksiä, kuten Hibernate & Spring.
Onko sinulla kysymys meille? Mainitse se tämän 'HashSet in Java' -artikkelin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.