Saber se as matrizes são iguais

Boa noite, sou iniciante em java e estou passando dificuldade para verificar se duas matrizes são iguais, alguem pode ajudar?
Segue o código:

import java.util.Random;
import java.util.Scanner;

public class App {
public static void main(String[] args) throws Exception {
System.out.println(“Demonioooooooooo”);

    Scanner scan = new Scanner(System.in);

	System.out.print("Informe o n de linhas: ");
	int linhas = scan.nextInt();

	System.out.print("Informe o n de colunas: ");
	int colunas = scan.nextInt();

    scan.close();

    int[][] matriz = criaMatriz (linhas, colunas);
	System.out.println();
	System.out.println("Matriz: ");
	mostrarMatriz(matriz);

    int[][] matrizB = criaMatriz (linhas, colunas);
	System.out.println();
	System.out.println("Matriz B: ");
	mostrarMatriz(matrizB);

}

    private static void mostrarMatriz (int[][] matriz) {
        for (int i = 0; i < matriz.length; i++) {
            for (int j = 0; j < matriz[i].length; j++) {
                System.out.print("[ " + matriz[i][j] + " ]");
            }
            System.out.println("  ");
        }
}

    public static int[][] criaMatriz (int linhas, int colunas) {
        int[][] matriz = new int[linhas][colunas];
        for (int i = 0; i < linhas; i++) {
            for (int j = 0; j < colunas; j++) {
                matriz[i][j] = aleatorio(0, 100);  
        }
    }
        return matriz;
}

public static int aleatorio(int min, int max) {
	return new Random().nextInt(max - min + 1) + min;
}

public static void mostrarMatrizB (int linhas, int colunas){
    Int [][] matrizB = new int[linhas][colunas];
    for (int i = 0; i < linhas; i++){
        for (int j = 0; j < colunas; j++){
            System.out.println("[ " + matrizB[i][j] + " ]");

        }
    }    
}

public static int[][] criaMatrizB (int linhas, int colunas) {
    int[][] matrizB = new int[linhas][colunas];
    for (int i = 0; i < linhas; i++) {
        for (int j = 0; j < colunas; j++) {
            matrizB[i][j] = aleatorio(0, 100);  
        }
    }
    return matrizB;
}

}

Primeiro, não precisa desses métodos criaMatrizB e mostrarMatrizB, pois eles são iguais a criaMatriz e mostrarMatriz. O propósito de funções/métodos é justamente reaproveitar o mesmo algoritmo, só mudando alguns parâmetros. O método criaMatriz sempre cria uma nova e a retorna, então esse é o suficiente. Já mostrarMatriz recebe a matriz como parâmetro, não precisa de outro método igual (aliás, repare que no main vc não usa os “métodos B”, o que está certo, então se livre deles).

E não precisa ficar criando um novo Random toda hora (cada vez que o método aleatorio é chamado, ele cria um novo Random). Em vez disso, crie apenas um e reaproveite-o:

private static Random RAND = new Random();
public static int aleatorio(int min, int max) {
    return RAND.nextInt(max - min + 1) + min;
}

Enfim, como você vê se duas matrizes são iguais?

  • primeiro vê o tamanho: se for diferente, já pode retornar que são diferentes
  • depois, para cada linha e coluna, vê se os valores são iguais

Ou seja:

private static boolean matrizesIguais(int[][] m1, int[][] m2) {
    // se o tamanho é diferente, não são iguais
    if (m1.length != m2.length) {
        return false; // já retorna, pois nem adianta verificar o resto
    }
    // se chegou aqui é porque os tamanhos são iguais
    for (int i = 0; i < m1.length; i++) {
        if (m1[i].length != m2[i].length) {
            return false; // tamanho da linha "i" não é igual, matrizes são diferentes
        }
        for (int j = 0; j < m1[i].length; j++) {
            // se algum elemento da posição (i, j) é diferente, matrizes são diferentes
            if (m1[i][j] != m2[i][j]) {
                return false;
            }
        }
    }
    // se chegou até aqui, é porque todos os elementos das mesmas posições são iguais
    // portanto as matrizes são iguais
    return true;
}

E no main basta fazer:

int[][] matriz = criaMatriz(linhas, colunas);
System.out.println();
System.out.println("Matriz: ");
mostrarMatriz(matriz);

int[][] matrizB = criaMatriz(linhas, colunas);
System.out.println();
System.out.println("Matriz B: ");
mostrarMatriz(matrizB);

System.out.println("iguais? " + matrizesIguais(matriz, matrizB));