Alamin kung ano ang HashSet sa Java at kung paano magsimula dito!



Ang artikulong ito sa HashSet sa Java ay magbibigay sa iyo ng isang kumpletong pangkalahatang ideya ng kung ano ang eksaktong HashSet sa Java at kung paano ito ipatupad. Magsasalita rin ito tungkol sa iba't ibang mga pamamaraan at tagabuo na suportado ng klase ng Java HashSet.

Ang HashSet sa Java ay isa sa pinakamahalagang aspeto ng . Karaniwan itong ginagamit upang mag-imbak ng mga natatanging halaga sa isang hindi naayos na pamamaraan. Sa pamamagitan ng daluyan ng artikulong ito sa HashSet sa Java, bibigyan kita ng isang kumpletong walkthrough ng kung ano talaga ang isang HashSet at kung paano mo ito magagamit sa iyong aplikasyon.

Nasa ibaba ang mga paksang sakop sa artikulong ito:





Magsimula tayo sa pamamagitan ng unang pag-unawa kung ano ang HashSet sa Java.

HashSet sa Java



java.util.HashSet klase ay isang miyembro ng balangkas ng mga koleksyon ng Java nanagmamana ng klase ng AbstractSet atnagpapatupad ngItakda interface . Implicit na ipinapatupad nito ang isang nai-tweet para sa paglikha at pag-iimbak ng isang koleksyon ng mga natatanging elemento. Ang Hashtable ay walang iba kundi isang halimbawa ng klase ng HashMap na gumagamit ng isang mekanismo ng pag-hash para sa pagtatago ng impormasyon sa loob ng isang HashSet.

Ang Hashing ay ang proseso ng pag-convert ng nilalamang nagbibigay impormasyon sa isang natatanging halaga na mas kilala bilang hash code. Ginamit ang hashcode na ito para sa pag-index ng data na nauugnay sa key. Ang buong proseso ng pagbabago ng key ng impormasyon sa hashcode ay ginaganap sa loob.

Ngayon para sa isang mas mahusay na pag-unawa sa HashSet sa Java, hayaan mo akong ilista ang ilan sa mga tampok nito:



  1. Ang isang HashSet sa Java ay hindi pinapayagan ang mga duplicate na halaga.
  2. Maaari itong maglaman ng mga null na halaga.
  3. Hindi sinusunod ng HashSet ang pagkakasunud-sunod ng pagpasok para sa pag-iimbak ng data sa halip ginagamit nito ang hashcode para sa pag-index ng mga halaga sa loob.
  4. Ito ay hindi sinabay na awtomatikong ginagawa itong thread-unsafe.
  5. Nagpapatupad din ang klase ng HashSet ng Cloneable atSerializable interface.

Ngayong alam mo na kung ano talaga ang HashSet sa Java, lumipat tayo sa karagdagang artikulong ito at i-demystify ang mga pagkakaiba sa pagitan ng HashMap at HashSet sa Java.

Java HashSet vs HashMap

HashSet HashMap
Nagpapatupadjava.util.Itakda ang interfaceNagpapatupadjava.util.Mapa
Nag-iimbak ng data bilang mga bagayNag-iimbak ng data sa anyo ng pares ng key-halaga
Ang HashSet ay nangangailangan lamang ng isang parameter para sa pagsisimula ng objectNangangailangan ito ng dalawang mga parameter (susi, halaga) para sa pagsisimula ng object
Hindi pinapayagan ang mga duplicate na elementoHindi pinapayagan ang mga duplicate na key ngunit maaari kang mag-imbak ng mga duplicate na halaga
Pinapayagan ang isang solong halaga ng nullPinapayagan ang isang solong null key at anumang bilang ng mga null na halaga
Paggamit ng HashSet add ()pamamaraan para sa pagdaragdag o pag-iimbak ng dataAng HashMap ay gumagamit ng put () na pamamaraan para sa pag-iimbak ng data

Ngayon na mayroon kang isang malinaw na pagkakaiba sa pagitan ng HashMap at HashSet, ngayon ay mag-focus ulit tayo sa HashSet at sumisid dito. Sa susunod na seksyon ng artikulong ito, ipakikilala kita sa kumpletong hierarchy ng HashSet sa Java.

HashSet Hierarchy sa Java

Tulad ng nakikita mo mula sa ibinigay na diagram sa ibaba,Ang klase ng HashSet ay nagpapatupad ng interface na Itakda. Ang Set interface ay higit na nagmamana ng interface ng Koleksyon na kalaunan ay pinapalawak ang interface ng Iterable sa isang hierarchical order.

Java HashSet Hierarchy - HashSet sa Java - Edureka

Ngayon, magpatuloy sa artikulong HashSet sa Java, suriin natin ang iba't ibang tagapagtayo suportado ng klase na ito.

Ang mga nagtayo ng java.util.HashSet Class

Tagabuo Paglalarawan
HashSet () Ito ang default na tagapagbuo ng klase ng HashSet
HashSet (int kapasidad) Ang tagapagbuo na ito ay ginagamit upang pasimulan ang paunang kapasidad ng hash set. Ang kapasidad ay maaaring lumago nang pabago-bago sa pagdaragdag ng mga bagong elemento
HashSet (int kapasidad, float loadCapacity) Ang tagapagbuo na ito ay ginagamit upang simulan ang paunang kapasidad ng hash na itinakda kasama ang kapasidad ng pag-load
HashSet (Koleksyon c) Ginagamit ang konstruktor na ito upang magpasimulaang hash na itinakda sa pamamagitan ng paggamit ng mga elemento mula sa Koleksyon c

Ito ang apat na tagapagbuo ng klase ng HashSet sa . Alamin natin ngayon kung ano ang iba-iba tinukoy sa Java HashSet.

Mga pamamaraan ng java.util.HashSet Class

Pamamaraan Paglalarawan
boolean add (Object obj) Ang pamamaraang ito ay tumutulong sa pagdaragdag ng isang tinukoy na elemento sa HashSet lamang kung wala ito
walang bisa () Ang pamamaraang ito ay tumutulong sa pag-alis ng lahat ng mga elemento mula sa HashSet
Pag-clone ng object () Ang pamamaraang ito ay nagbabalik ng isang mababaw na kopya ng halimbawa ng HashSet sa halip na mga clone ng mga elemento ng HashSet
naglalaman ang boolean (Bagay o) Ang pamamaraang ito ay babalik totoo kung ang naipasa na elemento ay naroroon sa loob ng HashSet
boolean ayEmpty () Ang pamamaraang ito ay babalik nang totoo kung sakaling walang laman ang HashSet
Iterator iterator () Ang pamamaraang ito ay nagbabalik ng isang umuulit sa mga elemento na naroroon sa HashSet
alisin ang boolean (Bagay o) Ang pamamaraang ito ay tumutulong sa pag-alis ng tinukoy na elemento mula sa HashSet kung mayroon ito
int laki () Ibinabalik ng pamamaraang ito ang kabuuang bilang ng mga elemento na naroroon sa HashSet

Kasama ang mga nakalista sa itaas na pamamaraan, ang klase ng HashSet sa Java ay naglalaman din ng mula sa superclass nito.

Subukan natin ngayon ang pagpapatupad ng mga pamamaraang ito at mabasa ang ating mga paa sa pag-coding.

Pagpapatupad ng HashSet sa Java Program

Sa halimbawa sa ibaba, susubukan naming ipatupad ang isang bilang ng mga pamamaraan na ibinigay ng klase ng HashSet.

import java.util.HashSet import java.util. * pampublikong klase SampleHashSet {public static void main (String [] args) {// Lumilikha ng isang HashSet Set eduCourses = bagong HashSet () // Pagdaragdag ng mga bagong elemento sa HashSet eduCourses.add ('Big Data') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. idagdag ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // Ang pagdaragdag ng mga duplicate na elemento ay hindi papansinin eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Suriin kung ang HashSet ay naglalaman ng isang tukoy na elemento na String myCourse = 'Node.js' kung (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' ay nasa listahan ng mga kurso. ')} iba pa {System.out.println (myCourse +' wala sa listahan ng mga kurso. ')} // Pagsunud-sunod ng mga eduCourses gamit ang Listahan ng listahan ng listahan = bagong ArrayList (eduCourses) Mga Koleksyon.sort (listahan) // Pagpi-print ng mga pinagsunod-sunod na elemento ng HashSet System.out.println (' Pagpi-print ng Mga Kurso sa pagkakasunud-sunod ng pagkakasunud-sunod gamit ang List: '+ list) // Pag-aalis ng mga item mula sa HashSet gamit ang alisin () eduCourses.remove (' Python ') // Iterating over HashSet item System.out.println (' Iterating over course list pagkatapos alisin Python: ') Iterator i = eduCourses.iterator () habang (i.hasNext ()) System.out.println (i.next ()) // Lumilikha ng isa pang object ng HashSet HashSet eduNewCourses = bagong HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Pag-aalis ng lahat ng mga bagong elemento mula sa HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Pagkatapos ng pagtawag sa pagtanggalAll () natitirang mga kurso sa pamamaraan: '+ eduCourses) // Pag-aalis ng mga elemento batay sa tinukoy na kondisyon eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Pagkatapos ng pag-apply sa pagtanggalIf () na pamamaraan: '+ eduCourses) // Pag-aalis ng mga elemento mula sa eduCourses na tinukoy sa eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet pagkatapos ng' + 'retainAll () na operasyon: '+ eduNewCourses) // Pag-aalis ng lahat ng mga sangkap na magagamit sa itinakdang eduCourses.clear () System.out.println (' Matapos ipatawag ang malinaw na () pamamaraan: '+ eduCourses)}}

Kapag naisagawa mo ang code sa itaas, bibigyan ka nito ng ipinakitang output sa ibaba.

hash map vs hash table

Sa pamamagitan nito, natapos na kami sa artikulong ito. Inaasahan kong mapanatili kong malinis at malinaw ang mga konsepto. Maaari kang matuto nang higit pa tungkol sa sa pamamagitan ng pagdaan sa aming .

Ngayon na naintindihan mo kung ano ang isang HashSet sa Java, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng artikulong 'HashSet in Java' at babalikan ka namin sa lalong madaling panahon.