"Lho, prosesormu piye?"

"Ora apa-apa. Aku lungguh ing nitrogen cair sajrone jam, mula saiki aku kaya anyar!"

"Apik. Banjur ayo diterusake."

"Setel koleksi."

Sacara matematis, set minangka klompok unsur unik. Dadi, ing pemrograman, Set minangka koleksi unsur unik, yaiku koleksi sing ora ngidini sampeyan nyimpen unsur sing padha.

"Aku ora ngerti yen Ellie nuduhake hierarki pusaka Set. Yen ora, iki:"

Implementasi Antarmuka Set lan Antrian - 1

"A HashSet minangka koleksi sing nyimpen unsur internal kanthi nggunakake nilai hash sing dibalekake dening metode hashCode ()."

"Kanggo kesederhanaan, HashSet<E> nyimpen obyek HashMap<E, Object> sing nyimpen nilai HashSet minangka kunci."

"Wah!"

"Nganggo kode hash ngijini sampeyan nggoleki, nambah, lan mbusak unsur saka Set."

"Nanging elinga yen kelas sampeyan kudu ngetrapake metode hashCode & padha supaya bisa nambah obyek kelas sampeyan menyang Set, lan nemokake kanthi bener ing kana."

"Loro-lorone cara digunakake akeh ing HashSet / HashMap. "

"Yen sampeyan lali ngleksanakake metode hashCode (), sampeyan duwe risiko ora bisa nemokake obyek sampeyan ing Set, sanajan ana."

"Iya, aku eling, aku eling. Sampeyan wis ngomong babagan iki, aku wis krungu kabeh."

"Oke. Banjur iki sawetara informasi liyane migunani kanggo sampeyan."

"Upami sampeyan wis ngetrapake kode hash kanthi bener lan padha  ing kelas sampeyan, lan sampeyan kanthi seneng nyimpen obyek ing Set."

"Nanging banjur sampeyan pindhah lan ngganti salah siji obyek, lan kanthi mangkono sampeyan ngganti data internal sing digunakake kanggo ngetung hash sawijining . Dadi owah-owahan hash obyek."

"Lan iki tegese yen sampeyan nggoleki ing Set, sampeyan mbokmenawa ora bakal nemokake."

"Wah! Kepiye carane?"

"Iki minangka pitfall sing kondhang nalika nggarap hash. Intine, telusuran HashSet (lan HashMap) mung dijamin bisa digunakake kanthi bener yen obyek ora bisa diganti ."

"Wah! Lan apa, ora ana sing nindakake apa-apa?"

"Kabeh wong ndalang yen masalah ora ana. Nanging iki kerep muncul ing wawancara, mula kudu dieling-eling ... "

"A LinkedHashSet minangka HashSet sing unsur uga disimpen ing dhaptar sing disambung. HashSet normal ora ndhukung urutan unsur. Kaping pisanan, iki dudu operasi resmi. Kapindho, malah urutan internal bisa diganti kanthi signifikan nalika siji unsur ditambahake."

Nanging sampeyan bisa njaluk iterator saka LinkedHashSet lan digunakake kanggo mbukak kabeh unsur ing urutan padha ditambahake menyang LinkedHashSet . Ora asring kedadeyan, nanging kadhangkala iki dibutuhake banget."

"Aku ngerti. Aku seneng yen ana kelas kanggo skenario "mung ing kasus" iki. Kasus kaya mengkono ora langka.

" TreeSet minangka koleksi sing nyimpen unsur ing wangun wit sing diurutake miturut nilai. A TreeSet <E> ngemot TreeMap <E, Object> sing nyimpen kabeh nilai kasebut. Lan TreeMap iki nggunakake wit abang -ireng sing seimbang kanggo nyimpen unsur . Akibaté, ndhukung cepet banget nambah, mbusak, lan ngemot operasi."

"Iya, aku elinga. We rembugan sing bubar. Lan aku uga mikir babagan ngendi iki digunakake."

"Lan pranyata sawetara koleksi paling populer ing Jawa nggunakake."

"Ya, kanthi cara, pewawancara asring takon babagan TreeSet . Biasane dheweke nyoba ngapusi sampeyan. Dheweke bakal ujar, 'yen TreeSet nggunakake wit binar, mula kabeh unsur bisa mbentuk siji cabang sing dawa, mula panelusuran bakal njupuk "Iki mung wektu kanggo nyelehake wong sing ora sopan ing panggonane kanthi nyatakake, "Malah bocah ngerti yen TreeSet lan TreeMap nggunakake wit-witan abang - ireng sing seimbang , saengga kahanan kasebut pancen ora mungkin."

"Ah. Aku seneng ndeleng pasuryane wong sing takon. Aku malah bisa apal frasa kasebut. ..."

"Nanging ing praktik, Set ternyata ora gampang kaya sing dakkira."

"Ing sisih liyane, kahanan karo Antrian luwih gampang:"

Implementasi antarmuka Set lan Antrian - 2

" Antrian ngleksanakake antrian. Unsur ditambahake ing mburi antrian lan dijupuk saka ngarep."

" PriorityQueue sejatine mung implementasi klasik saka antarmuka Antrian , ora ngetung LinkedList , sing sacara teknis uga antrian."

"Oke, aku wis kesel. Iki kabeh kanggo dina iki. Nganti wektu sabanjuré."