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?
Üdv!
Konkrét probléma nincs csupán azzal foglalkoztam, hogy két tömböt hogy tudok ily módon összehasonlítani. Lehet a tömbökben bármilyen adat és viszonylag sok i, hiszen a tömb integerrel van indexelve szóval akár Integer.MAXVALUE indexű elem is lehet benne.
Kipróbáltam több megoldást is. A hashcode-osat még nem.
Kézenfekvő volt, hogy a tömböket átalakítsam valami Collection-t implementáló adatszerkezetre és akkor a containsAll() jó lehet.
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!