Java-s asuv HashSet on üks olulisemaid aspekte . Seda kasutatakse tavaliselt kordumatute väärtuste kordumatuks salvestamiseks. Selle Java veebisaidil HashSet asuva artikli vahendusel annan teile täieliku ülevaate sellest, mis täpselt on HashSet ja kuidas saate seda oma rakenduses kasutada.
Allpool on siin artiklis käsitletud teemad:
funktsiooni ülekoormamine c ++
- HashSet Java-s
- Java HashSet vs HashMap
- HashSeti hierarhia
- Java.util.HashSeti klassi ehitajad
- Java.util.HashSeti klassi meetodid
- HashSeti juurutamine Java-programmis
Alustame kõigepealt, mõistes, mis on Java-s HashSet.
HashSet Java-s
java.util.HashSet klass on Java kogude raamistiku liige, mispärib klassi AbstractSet jarakendabMäära liides . See rakendab vaikimisi hashtable'i ainulaadsete elementide kogu loomiseks ja säilitamiseks. Hashtable pole midagi muud kui HashMapi klassi eksemplar, mis kasutab HashSetis teabe salvestamiseks räsimehhanismi.
Räsimine on protsess, mille käigus muudetakse infosisu ainulaadseks väärtuseks, mida rahva seas tuntakse rohkem kui räsikoodi. Seda räsikoodi kasutatakse seejärel võtmega seotud andmete indekseerimiseks. Kogu infovõtme räsikoodiks muutmise protsess viiakse läbi sisemiselt.
HashSeti paremaks mõistmiseks Javas lubage mul loetleda mõned selle funktsioonid:
- Java-s sisalduv HashSet ei võimalda duplikaatväärtusi.
- See võib sisaldada nullväärtusi.
- HashSet ei järgi andmete salvestamise sisestamise järjekorda, vaid kasutab sees olevate väärtuste indekseerimiseks räsikoodi.
- See ei ole sünkroniseeritud mis muudab selle niiditurvaliseks automaatselt.
- HashSeti klassis rakendatakse ka Cloneable jaSerialiseeritavad liidesed.
Nüüd, kui olete teadlik sellest, mis täpselt on Java-s HashSet, liigume selle artikliga edasi ja selgitame Java-s HashMapi ja HashSeti erinevusi.
Java HashSet vs HashMap
HashSet | HashMap |
Rakendabjava.util.Määra liides | Rakendabjava.util.Kaart |
Salvestab andmeid objektidena | Salvestab andmeid võtmeväärtuste paari kujul |
HashSet nõuab objekti initsialiseerimiseks ainult ühte parameetrit | Objekti initsialiseerimiseks on vaja kahte parameetrit (võti, väärtus) |
Ei luba duplikaatelemente | Ei luba duplikaatvõtmeid, kuid saate dubleerida väärtusi |
Lubab ühe nullväärtuse | Lubab ühe nullvõtme ja suvalise arvu nullväärtusi |
HashSet kasutage add ()meetod andmete lisamiseks või salvestamiseks | HashMap kasutab put () meetodit andmete salvestamiseks |
Nüüd, kui teil on selge erinevus HashMapi ja HashSeti vahel, keskendume nüüd uuesti HashSetile ja sukeldume sellesse sügavamale. Selle artikli järgmises osas tutvustan teile Java-keeles HashSeti täielikku hierarhiat.
HashSeti hierarhia Java-s
Nagu näete allpool toodud skeemilt,Klass HashSet rakendab liidest Set. Liidese komplekt päranduseks on ka liides Collection, mis pikendab Iterable'i liidest hierarhilises järjekorras.
Nüüd, liikudes selle Java-i HashSetiga edasi, uurime erinevaid konstruktorid see klass toetab.
Java.util.HashSeti klassi ehitajad
Ehitaja | Kirjeldus |
HashSet () | See on klassi HashSet vaikekonstruktor |
HashSet (sisemaht) | Seda konstruktorit kasutatakse räsikomplekti esialgse võimsuse initsialiseerimiseks. Võime võib uute elementide lisamisega dünaamiliselt kasvada |
HashSet (int-maht, ujukkoormus) | Seda konstruktorit kasutatakse initsialiseeritud räsi algvõimsuse ja kandevõime initsialiseerimiseks |
HashSet (kogu c) | Seda konstruktorit kasutatakse initsialiseerimiseksräsi, mis on määratud kollektsiooni c elementide abil |
Need olid neli HashSeti klassi konstruktorit aastal . Uurime nüüd, mis on erinevad määratletud Java HashSetis.
Java.util.HashSeti klassi meetodid
Meetod | Kirjeldus |
boolean add (Object obj) | See meetod aitab määratud elementi lisada HashSeti ainult siis, kui seda pole |
tühine selge () | See meetod aitab eemaldada kõik elemendid HashSetist |
Objektikloon () | See meetod tagastab HashSeti eksemplari madala koopia, mitte HashSeti elementide kloonid |
tõeväärtus sisaldab (Object o) | See meetod tagastab tõene, kui läbitud element on HashSeti sees |
boolean isTühi () | See meetod naaseb tõeks juhul, kui HashSet on tühi |
Iteraatori iteraator () | See meetod tagastab iteraatori HashSeti elementide kohal |
tõeväärtuse eemaldamine (objekt o) | See meetod aitab määratud elemendi HashSetist eemaldada, kui see on olemas |
int suurus () | See meetod tagastab HashSetis olevate elementide koguarvu |
Lisaks ülaltoodud meetoditele sisaldab Java-klass HashSet ka oma superklassidest.
Proovime nüüd neid meetodeid rakendada ja laseme kodeerimisega jalad märjaks.
HashSeti juurutamine Java-programmis
Allpool toodud näites proovime rakendada mitmeid HashSeti klassi pakutavaid meetodeid.
import java.util.HashSet import java.util. * avalik klass SampleHashSet {public static void main (String [] args) {// HashSeti komplekti loomine eduCourses = new HashSet () // uute elementide lisamine 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') // duplikaatelementide lisamist ignoreeritakse eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Kontrollige, kas HashSet sisaldab konkreetset elementi String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' on kursuste loendis. ')} else {System.out.println (minu kursust +' ei ole kursuste loendis. ')} // eduKursuste sortimine loendiloendi abil = uus ArrayList (eduCourses) Collections.sort (nimekiri) // HashSet System.out.println ('sortitud elementide printimine Kursuste printimine järjestatud järjekorras, kasutades loendit: '+ loend] // üksuste eemaldamine HashSetist, kasutades eemaldamist () eduCourses.remove (' Python ') // Iteratsioon üle HashSeti üksuste System.out.println (' Kursuste loendi kordamine pärast eemaldamist Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // HashSeti teise objekti loomine HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Kõigi uute elementide eemaldamine rakendusest HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Pärast eemaldamise eemaldamist () meetodikursused jäänud: '+ eduCourses) // Elementide eemaldamine määratud tingimuse alusel eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Pärast meetodi removeIf () käivitamist: '+ eduCourses) // elementide eemaldamine eduCourses'ist, mis on määratletud edukNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet pärast' + 'retainAll () toimingut: '+ eduNewCourses) // Kõigi komplekti eduCourses.clear () System.out.println saadaolevate elementide eemaldamine (' Pärast meetodi clear () käivitamist: '+ eduCourses)}}
Kui täidate ülaltoodud koodi, annab see teile allpool näidatud väljundi.
Sellega jõuame selle artikli lõpuni. Loodetavasti suutsin hoida mõisted teravad ja selged. Lisateavet saate läbides meie .
Nüüd, kui olete aru saanud, mis on Java-s HashSet, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.
Kas teil on meile küsimus? Palun mainige seda selle artikli “HashSet Java'is” kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.