Hirdetés
- OnePlus 15 - van plusz energia
- Milyen okostelefont vegyek?
- Poco F7 – bajnokesélyes
- Samsung Galaxy A56 - megbízható középszerűség
- Apple iPhone 16 Pro - rutinvizsga
- Ez lehet az Apple hajlítható telefonjának formája, mérete
- Amazfit Bip 6 - jót olcsón
- Külföldi prepaid SIM-ek itthon
- Apple iPhone 15 Pro Max - Attack on Titan
- Megtévesztő a Lite jelzés a OnePlus új óráján
Ú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?:))
- OnePlus 15 - van plusz energia
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Milyen okostelefont vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Vezetékes FEJhallgatók
- Autós topik
- Milyen TV-t vegyek?
- Vigneau interaktív lokálblogja
- Motoros topic
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- ELADÓ Gamer Konfig
- EIZO FlexScan EV2495 Made in Japan! 1920x1200 IPS USB-c állítható magasság, PIVOT 2024-04 gyártás!
- 10 DB Lenovo ThinkPad Laptop X13 G2 G3, T14 G3 G5, T14s G4 G6, P15 G1 G2
- RAM memória Crucial Pro OC Gaming 16GB DDR5 6400MHz CL32 Black - bontatlan, új
- Dell Latitude 7420, 14" FHD IPS kijelző, i7-1185G7 CPU, 16GB DDR4, 256GB SSD, W11, Számla, 1 év ga
- Decathlonos 43-as boxcipő, alig használt, hibátlan állapotban
- Apple iPhone 13 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S21 Ultra 5G 12/128GB Fekete / 12 hó jótállás
- GYÖNYÖRŰ iPhone 13 Mini 128GB Blue- 1 ÉV GARANCIA -Kártyafüggetlen, MS4067,94% Akksi
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


