Új hozzászólás Aktív témák
-
modder
aktív tag
válasz
Superhun
#3157
üzenetére
Én nem keverném ezt bele, mert az equals()-nak és a hashCode()-nak az egyedet kell tudnia azonosítania, és nem egyetlen tulajdonságát. Végtelenféle háromszöget lehet ugyanazzal a területtel. Szóval ez ellent mond a Java equals()-ra és hashCode()-ra vonatkozó contractjának.
Nem is adna jó eredményt, mert a terület nagy valószínűséggel Float lesz, amit nem tudsz még javában sem alapból úgy összehasonlítani, hogy mindig jó eredményt kapj, pláne nem az == operátorral:
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Float.html#equals(java.lang.Object)Nem tudom mire kell itt a HashSet, de én úgy oldanám meg a dolgot memóriahatékonyan, hogy:
1) csinálok egy ArrayList<Haromszog> haromszogek listát
2) csinálok egy másik ArrayList<Float> teruletek listát
3) ahogy generálom a háromszögeket a ciklusban, egy belső ciklusban minden legenerált háromszögre végigmegyek a 'területek' összes elemén és megnézem, hogy benne van-e az új háromszög területe, így:
if(Math.abs( aktualisTerulet - ujHaromszogTerulet) < 0.001f)
benne van
else
nincs benne, hozzáadom a háromszögekhez a háromszöget, és hozzáadom a az ujHaromszogTeruletet a teruletekhezHa pontosabb float egyenlőség vizsgálat kell, ezt találtam neten http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
esetleg gyorsabban futó megoldást is találhatsz, ha valamilyen orderes listet használsz pl http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#binarySearch(java.util.List, java.lang.Object, java.util.Comparator) -vel keresel a területek között
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Getac S410 katonai laptop eladó (Intel I5 6300U 4X2,4Ghz, 16GB DDR4, 1TB SSD, jó akku)
- X13 Yoga Gen4 13.3" FHD+ IPS érintő i7-1355U 16GB 256GB NVMe IR kam aktív toll gar
- Workstation? Gamer PC? Netezős irodai konfig? YOU NAME IT!
- Dell Latitude 9420 i5-1145G7 14" FHD+ 16GB 512GB 1 év garancia
- ÚJ 5G LTE! Microsoft Surface Pro 8 i7-1185G7 16GB 512GB 1 év garancia (Microsoft + MalakCare)
- Fujitsu LIFEBOOK E449 i3-8130U 8GB 256GB 14" FHD 1 év garancia
- ÚJ HP EliteBook 6 G1a Ryzen 5 PRO 230 4.9GHz 16GB DDR5 512GB FHD+ 16:10 már jobbik kijelző, gar 2028
- HIBÁTLAN iPhone 11 128GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS4258
- ÚJRA! 256GB NVMe SSD, 1 év gar
- BESZÁMÍTÁS! Sony PlayStation 5 825GB SSD lemezes konzol fejhallgatóval garanciával hibátlan működés
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


