- Megjött a jubileumi Pixel széria
- Magisk
- Samsung Galaxy S25 - végre van kicsi!
- Samsung Galaxy S25 Edge - a tegnap határán
- Bluetooth-headsetekről általában
- Google Pixel topik
- Poco F7 Pro - jó, de az amatőr sem rossz
- Amazfit Balance - ár-érték egyensúly
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Öreg hardver, középkorú Android, friss telep
Ú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?:))
- HP Probook 440 G11 (9Y7Q2ET) - ÚJ 14" üzleti notebook - Core U5 , 512SSD
- HP Probook 440 G11 (AA0Y5ES) - ÚJ 14" üzleti notebook - Core U5 , Win11 pro
- iKing.Hu - Apple iPhone 14 Pro Max Stílusos erő, Pro kamera rendszerrel! 128GB - 3 hónap gari!
- Lenovo ThinkPad T480, T580, P51s, P52s, T480s belső akkumulátor eladó
- MacBook Pro M2 Pro 16 // 16/512 96%-os akkumulátor
- AKCIÓ! DELL PowerEdge R630 rack szerver - 2xE5-2680v4 (28c/56t, 2.4/3.3GHz), 128GB RAM, 1G, áfás
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450M-A R7 2700X 16GB DDR4 512GB SSD GTX 1070 8GB Cooler Master MasterBox Lite5 500W
- BESZÁMÍTÁS! LENOVO LOQ 15APH8 15 notebook - R7 7840HS 16GB DDR5 1TB SSD RTX 4060 6GB WIN11
- BESZÁMÍTÁS! Gigabyte H610M i3 12100F 16GB DDR4 512GB SSD RX 6600 8GB Zalman Z1 Plus ADATA 600W
Állásajánlatok
Cég: FOTC
Város: Budapest