Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- eldiablo: 30 év után szakítottunk, de azért még beszélünk...
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- GoodSpeed: Samsung Galaxy A56 5G
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- nézzbe: AM3 hűtés s478-ra
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Ú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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Pofonegyszerűvé teszi az AI-t az új AMD Software
- Xbox Series X|S
- iPhone topik
- Luxuspóráz: okosláncot akasztana a nyakadba az Apple
- Tőzsde és gazdaság
- Azonnali fáradt gőzös kérdések órája
- Elemlámpa, zseblámpa
- Samsung Galaxy A56 - megbízható középszerűség
- Épített vízhűtés (nem kompakt) topic
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- További aktív témák...
- ÚJ Lenovo Yoga 7 - 14" WUXGA OLED - Intel Ultra 5 226V - 16GB - 512GB - Win11 -3 év gari - HUN - PEN
- Orion HS 200 hangfalpár
- HP X360 830 G10 2in1 360 fokban kihajtható tablet mód is! i5 1335U 16Gb 256GB
- ÚJ iPad Pro 13" M4 Space Black 256GB Wifi
- Dell Precision 7550,15.6",FHD,i7-10850H,16GB DDR4,512GB SSD,Quadro T2000 4GB VGA,WIN11, 2 KAMERA
- MacBook Air M1 13" 16GB RAM 256GB SSD 27% áfás számla, (0228)
- BESZÁMÍTÁS! GIGABYTE A520M R3 3100 8GB DDR4 256GB SSD 1TB HDD GTX 1650 4GB ZALMAN N4 RGB 450W
- iPhone 14 Pro 128GB 100% (1év Garancia)
- Mini Pc HP ProDesk 600 G2 G3 G4, Acer Vertion /// 6-8. gen //// i3 / i5 /// garancia / Bp., MPL, Fox
- Eredeti DELL 330W töltők (ADP-330AB D)
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest

