Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Brogyi: CTEK akkumulátor töltő és másolatai
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Kalandor: Fred
- Geri Bátyó: Agglegénykonyha 8 – Ami félresikerül, még nem biztos, hogy rossz is
- Elektromos rásegítésű kerékpárok
- Lalikiraly: Kinek milyen setupja van?
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
Szmeby
tag
Remek... letelt az időkorlát. -.-
Szóval azt még elfelejtettem, hogy ha Set-re váltasz, akkor a Point.equals mellett a Point.hashcode-ot is implementálnod kell. Az IDE elvégzi helyetted, de a lényeg:
A HashSet úgy működik, hogy a beletolt objektumra először hashcode-ot számol, ez csak egy szám. Ehhez a hashcode-hoz létrehoz egy izét, nevezzük vödörnek, és ebbe a vödörbe dobja bele az objektumodat.
Ha egy újabbat adnál hozzá, akkor arra is hashcode-ot számol, és csak az adott hashcode-hoz tartozó vödörrel foglalkozik, végigmászik a vödör tartalmán, az equals-szal csekkolja, hogy benne van-e már, és ha talált, akkor nem teszi bele újra.
Ha a hashcode számítást elcseszed, akkor előfordulhat olyan, hogy van 2 objektumod, ami az equals szerint azonos, de a hashcode szerint nem. Mindkettő bele fog kerülni a Set-be (!!), mert a másik az eltérő hashcode miatt másik vödörbe kerül. Ilyet sose csinálj.
Vagy például megváltozik az objektumod állapota (mondjuk most nem, mert minden final, de máskor, mással, másnál igen), és a megváltozott állapot miatt megváltozhat a hashcode is. Na az az objektumod, ha benne volt egy set-ben, akkor ott is marad, sose találod meg. Vicces dolgok ezek.
Gondolhatnád, hogy akkor legyen a hashcode mindig 1, abból baj nem lehet. Jó gondolat, de lassú lesz, épp azért szegmentálunk sok kis vödörre relatíve kis számításigényű megoldásokkal, hogy csak egy kis vödör tartalmán kelljen végigsuhanni, gyorsan el lehet dönteni, hogy valami benne van-e abban a Set-ben avagy sem.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Google Pixel 10 256GB - Törött kijelzőüveg - szept. 30-i vásárlás
- ACER PREDATOR ORION 3000 // CORE I5 9400 // 16GB DDR4 // GEFORCE GTX1660 SUPER 6GB // SSD+HDD
- Asus rog Zephyrus g14
- Corsair VENGANCE RGB PRO DDR4 16GB ( 2x8 kit ) 3200Mhz memória eladó.
- G.Skill TridentZ DDR4 16GB (2X8GB kit) F4-3200C16D memória párban eladó
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- AZONNALI SZÁLLÍTÁSSAL Eladó Windows 8 / 8.1 Pro
- Microsoft Surface Laptop 3 13.5" i5-1035G7 16GB 512GB 1 év garancia
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA -Kártyafüggetlen, MS3231
- Konzol felvásárlás!! Nintendo Switch
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest