Hirdetés
- Kompakt, mégis egyszerűen fejleszthető barebone géppel jelentkezett a Shuttle
- 100 Hz-et tud az ASUS dokkolóval kombinált, ultraszéles monitora
- Egyre inkább szoftverrel segítene a Core CPU-k teljesítményén az Intel
- A szuperintelligencia még odébb, a szuperapp már közel
- Ha Darwinra hallgat az AI, nehéz lesz megállítani
Ú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?:))
- Programozás topic
- Autós topik
- Mibe tegyem a megtakarításaimat?
- PLC programozás
- Kecskemét és környéke adok-veszek-beszélgetek
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Yettel topik
- Nemzetközi vizekre evezett a Realme GT 7 és GT 7T
- TP-LINK routerek
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- További aktív témák...
- CoreI5,13600KF,14/20/GIGABYTE,B760M-DS3H,KINGSTON,DDR4 32GB,RTX5060TI 16GB/2Tb T.hely/GARI/Win11!
- Web automatizálás és automatizált tesztelés - spórolj napi több órát
- Bérelhető csúcskategóriás PC RTX 5090-vel - Ryzen 7/9, DDR5 ram
- ASRock Radeon RX 9060 XT Challenger OC 16GB - INGYEN FOXPOST
- Picit hibás - iPhone 12 PRO MAX 256GB - Grafit - Új 100% akkuval
- Apple iPhone 13 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 88%
- HIBÁTLAN iPhone 11 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS4494, 100% Akkumulátor
- iPhone 15 Pro Max 256GB 88% (1év Garancia) - AKCIÓ
- (TÖBB DARAB, KÉSZLETEN) SAMSUNG/ KINGSTON DDR4 8GB RAM - Memoria modul
- HIBÁTLAN iPhone 13 128GB Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4453, 100% Akksi
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

