Hirdetés
- Brogyi: CTEK akkumulátor töltő és másolatai
- Luck Dragon: Asszociációs játék. :)
- Luck Dragon: Óraátállítás
- aquark: Zsebszámológépek
- sziku69: Fűzzük össze a szavakat :)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- MasterDeeJay: Intel Optane M10: mire lehet használni?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Szólánc.
Ú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?:))
- Brogyi: CTEK akkumulátor töltő és másolatai
- Nvidia GPU-k jövője - amit tudni vélünk
- Tesla topik
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- exHWSW - Értünk mindenhez IS
- Warhammer 40.000
- Tápos kibeszélő offtopik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Pénzköteggel párnázta ki a memóriaszektor a Samsung negyedévét
- Crimson Desert
- További aktív témák...
- ASUS TUF RTX 5090 OC 32GB GDDR7 TUF-RTX5090-32G-GAMING Videokártya! BeszámítOK
- Intel 8.- gen i5 + 1660 Super + RGB , Számla-Ready !!!
- Új állapotú iPad air M2 cellular 128 GB, + Apple Pencil Pro, 1,5 év garancia
- Ubiquiti LOCOM2 NanoStation
- 27% - ÚJ GIGABYTE GeForce RTX 5080 AORUS MASTER 16GB GDDR7 256bit (N5080AORUS M-16GD) Videokártya !
- Sosemhasznált! HP OmniBook 5 Flip i5-1334U 16GB 512GB 14" áthajtós-érintős FHD+ Gar.: 1 év
- Panasonic TOUGHBOOK FZ-55 MK2
- AKCIÓ! MSI Cyborg 15 A12VF FHD GAMER notebook - i5 12450H 16GB DDR5 512GB SSD RTX 4060 8GB
- AKCIÓ! MSI Ventus 3X OC RTX 4070Ti videókártya garanciával hibátlan működéssel
- ASUS ROG Strix RTX 4090 OC 24GB GDDR6X Videókártya! BeszámítOK!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
