Hirdetés
- Kitolhatja az LGA1700 élettartamát az Intel
- Házimozi haladó szinten
- Milyen alaplapot vegyek?
- 5.1, 7.1 és gamer fejhallgatók
- Befutott a régóta várt, sok P-maggal kitömött, LGA1700-as Core sorozat
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen TV-t vegyek?
- Corsair tápok
- Nem indul és mi a baja a gépemnek topik
- 4K vs 8K – Megéri-e a 8K TV 2026-ban?
Új hozzászólás Aktív témák
-
Drizzt
nagyúr
válasz
bambano
#11597
üzenetére
Pedig tok egyszeru a dolog.
Van kiindulaskor valamennyi(n) darab bucket. A bucketek gyakorlatilag tombok. Tehat van egy n elemu tombod. Minden bucketben van egy linkelt lista, vagy valamilyen annak megfelelo struktura.
A hash fuggvenyen nem modositanak semmit, mivel azt Javaban a user-nek szokas megadnia(oke, altalaban a Lombok irja meg helyette, meg lehet hasznalni a default implementaciot is, de az lehet lassu bizonyos esetekben).Kereses kulcs alapjan:
- Meghivod a kulcsra a .hashCode metodust. Igy kapod az x erteket.
- Kiszamolod , hogy x mod n = z alapjan mi a z.
- A z. bucketet kikeresed(ez egy lepesben megvan).
- A z. bucket osszes elemen vegigiteralsz, s megnezed, hogy a kulcs equals-e az eppen iteralas alatt levo elemmel. Ha igen, akkor az ott szinten eltarolt erteket visszaadod.Mikor lesz ez az egesz lassu?
- Ha a hashCode ugy van megirva, hogy minden kulcs ugyanabba a bucketbe keruljon, vagy legalabbis a bucketek egy kis reszebe. Ilyenkor abban a bucketben egy hosszu lista lesz, ami miatt nem o(1) lesz a lookup, hanem kozeliti az o(n)-et.
Ugyanez akkor is igaz lenne, ha a map-ben levo elemek szama joval nagyobb lenne, mint n. Mit csinal ez ellen a Java? Figyel egy toltottsegi szintet. Ha a toltottsegi szinte egy hataron tul van, akkor fogja, s csinal 2*n uj bucketet, s a meglevo elemeket belerakja, a regi n bucketet meg eldobja.Ebbe a pogramozo is bele tud szolni, van olyan konstruktor, amiben meg tudod adni a kezdeti n-t, s a toltottsegi tenyezot. Szoval ha tudod, hogy rohadt sok elemet fogsz belepakolni, akkor rogton csinalhatsz egy HashMap-et jo nagy n ertekkel, s akkor meguszol par rehash-t. Alapbol 16 bucket lesz, amit akkor ujrahashel, ha legalabb 13-ra no a size. Ekkor 32 bucket lesz, majd ha size legalabb 25 lesz, akkor ujrahashel 64 bucketbe, stb.
A LinkedHashMap az egy specibb valtozat, ahol az egesz HashMap-en tul egy LinkedList is fenn van tartva, ami az osszes elemet tartalmazza a hozzaadas sorrendjeben. Akkor kell hasznalni, ha fontos a hozzaadas sorrendjet tudni.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Asus TUF A15 FA506IV 15.6" FHD IPS Ryzen 7 4800H RTX 2060 16GB 512GB magyar vbill gar
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700 / RX 5500XT 8GB / 16GB DDR4 / 128SSD+1TB HDD
- Samsung PM9C1b 1TB M.2 PCIe Gen4 SSD! 7.100-6.700MB/s
- Logitech G SAITEK Farm Sim Controller
- BONTATLAN! - ASUS RTX 5070 Ti PRIME OC 16GB - 3 ÉV ALZA GARANCIA!!
- 2db Kolink kontinium 1200w platinum
- Szép állapotban Lenovo ThinkPad T14s Gen 4 i5-1335u/16 GB/256 SSD/FHD+/IPS/Garancia 2027
- 27% - Dell S2721NX IPS Monitor! 1920x1080 / 75Hz / 4ms / FreeSync
- Bomba ár! Lenovo ThinkPad T14 G1i - i5-10G I 16GB I 256GB SSD I 14" FHD I Cam I W11 I Garancia!
- Huawei Nova 10 128GB Starry Silver Újszerű állapot 2028. 03. 20. garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

