Jevilik ha scritto:
Non credo di aver capito
Allora: se ci fossero i due array es. (li metto a fianco, così è più chiaro):
int[][] m = { int[][] z = {
{ 1, 4, 6 }, { 8, 1, 5 },
{ 7, 3, 2 }, { 1, 4, 6 },
{ 8, 1, 5 } { 4, 5, 7 }
}; };
Se tu vuoi arrivare a scoprire che:
- la riga m[0] è uguale alla riga z[1]
- la riga m[2] è uguale alla riga z[0]
allora devi "provare" tutte le combinazioni possibili tra le righe di m e z:
la riga m[0] con tutte le righe di z
la riga m[1] con tutte le righe di z
ecc...
In sostanza quello che c'è da fare è un doppio ciclo for annidato, in cui quello esterno scansioni le righe di m e in quello interno le righe di z (o all'inverso, scegli tu da dove partire).
Quando all'interno dei due for hai un m[j] e un z[k] ovvero hai due righe, allora come ho detto prima puoi usare il equals di java.util.Arrays ma puoi anche usare quel
boolean righe(int[]a,int[]b) che hai mostrato prima (il nome "righe" non è molto significativo, sarebbe stato meglio es.
arrayUguali ).
Insomma: prima le combinazioni tra le righe, poi con una riga di m e una di z chiaramente dovrai confrontare i loro elementi e ripeto o usi qualcosa di già fatto (Arrays.equals) o lo fai tu appunto con un ulteriore ciclo.
Altra questione
Da tutta questa analisi, cosa vuoi ottenere? Dico 3 scenari sensati/ragionevoli:
a) ottenere un singolo
true se esiste ALMENO UNA corrispondenza tra una riga di m e una di z?
b) ottenere un valore int che dice esattamente quante corrispondenze hai trovato (nel mio esempio sopra: 2)
c) ottenere un elenco puntuale di tutti gli indici di m/z in cui c'è una corrispondenza?