- Xiaomi Smart Band 8 - folyamatosan
- Xiaomi 15T - reakció nélkül nincs egyensúly
- A legolcsóbb és a legdrágább új iPhone fogy a legjobban
- iPhone topik
- Samsung Galaxy Watch7 - kötelező kör
- Samsung Galaxy A56 - megbízható középszerűség
- Nem lesz iPhone 19
- Apple Watch
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen okostelefont vegyek?
Ú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?:))
- Vezetékes FEJhallgatók
- Nagyon nem szokványos módon ment tönkre egy ASML gép Kínában…
- Spotify
- Samsung Galaxy Felhasználók OFF topicja
- Mikrotik routerek
- OTP Bank topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- VGA kibeszélő offtopik
- Battlefield 6
- Xiaomi Smart Band 8 - folyamatosan
- További aktív témák...
- XBOX Series X 1TB SSD konzol 6 hónap garanciával!
- D5 Gamer PC - i5 12400f, RTX 3070 és 16gb DDR5 RAM + GARANCIA
- Nitro ANV15-41 15.6" FHD IPS Ryzen 7 7735HS RTX 4050 16GB 1TB NVMe magyar vbill gar
- Precision 7680 16" FHD+ IPS i7-13850HX RTX 2000 Ada 32GB 1TB NVMe IR kam gar
- PlayStation 4 500GB konzol eladó
- HIBÁTLAN iPhone 14 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3238
- Game Pass Ultimate előfizetés azonnal, problémamentesen, méghozzá OLCSÓN! Immáron 8 éve!
- iPhone 12 Pro 128GB Pacific Blue - 1 ÉV GARANCIA - Kártyafüggetlen, MS3259,100% Akkumulátor
- Sony MHC-V43D Aktív hangfal, party hangszóró
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / RX 5700 / 16GB DDR4 / 512GB SSD
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest