Hirdetés
- MIUI / HyperOS topik
- Milyen okostelefont vegyek?
- iPhone topik
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Itthon is elérhető a OnePlus 11 és a Buds Pro 2
- Android alkalmazások - szoftver kibeszélő topik
- Poco F8 Pro – titkos favorit lehet belőle
- One mobilszolgáltatások
- Titan 2 Elite néven érkezik egy újabb BlackBerry-szerű Unihertz
- Xiaomi 14T Pro - teljes a család?
Ú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?:))
- Revolut
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Formula-1 humoros
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- sh4d0w: Nyitlocker
- Megkérdeztük az AI-t: milyen érzés, amikor megreguláznak?
- A fociról könnyedén, egy baráti társaságban
- Xbox Series X|S
- One otthoni szolgáltatások (TV, internet, telefon)
- HBO Max
- További aktív témák...
- Apple Watch Series 8 GPS 32Gb 86% akku
- Iphone 12 128Gb Product Red-felujított-10 tok-5 fólia
- Szép Dell Latitude 7430 "Kis Gamer" Üzleti Profi Ultrabook 14" -50% i5-1245U 16/512 FHD IRIS Xe
- Vadonatúj iPhone 14 PRO MAX 256GB space black KÁRTYAFÜGGETLEN! 1 év Apple garancia!
- HP USB-C Dock G5 (HSN-IX02) ÁFÁ-s
- HP EliteOne 800 G6 All-in-One i5-10500 32GB 1000GB 24" Érintőkijelző!! 1 év garancia
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Apple iPhone 15 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- Keresünk iPhone 13/13 Mini/13 Pro/13 Pro Max
- AKCIÓ! DELL PowerEdge R630 rack szerver - 2xE5-2680v4 (28c/56t, 2.4/3.3GHz), 128GB RAM, 1G, áfás
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


