Hogy ellenőrizhető két tömb egyenlősége java-ban?
Egyenlőség alatt azt értem, hogy ugyanazokat az elemeket tartalmazza, de akár más sorrendben.
Adott két tömb:
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
Erre ugye az Arrays.equals(a,b); true-t ad vissza, de így:
int[] a = {1, 2, 3};
int[] b = {3, 2, 1};
már false az eredmény.
Megoldásnak azt látom, hogy rendezzük a tömböt és összehasonlítjuk őket, de:
1.honnan tudom, hogy a tömb rendezett-e? Mert így rendezni kell a már rendezett tömböt is (a példában az a tömböt is.)
2.a rendezés (bár az Arrays.sort() quicksort) erőforrás igényes.
Mi a megoldás?





1, Kiprinteled a tartalmát és látod.
2, Ha nagyon akarod megnézheted a Collection frameworköt, hogy mikor mit érdemes használni, de 3 emlemű tömbnél kb hullamind1.





"erőforrás igényes"
És, nimcs CPU a gépedben, vagy mi a gond?





"honnan tudom, hogy a tömb rendezett-e?"
Csinálsz egy ciklust 0-tól elemszám-1-ig és összehasonlítod páronként (márint a szomszédokat)... ez a tömb méretével lineáris időben lefut.
Sok elem esetén pedig valahogy rendezned kell - ha nem is az Array.sort-tal -, hogy gyorsan megállapítsd hogy azonosak-e az elemek. Ez igazából az elemektől függ hogy hogy érdemes.










Ha a rendezés stabil, akkor nincs gond abból, ha a tömb rendezett.
Kedves kérdező, lehetőséged van rendezés után először hashértékeket kiszámítani, és azokat összehasonlítani. Ha egyeznek, akkor jöhet az equals.










Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!