Comparar Matrices en Java

22/Jul/2015 Java ,

Mediante el siguiente ejemplo vamos a ver como podemos comparar matrices en Java. Es decir ver si dos matrices son iguales, si tienen el mismo número de elementos y dichos elementos coinciden.

Lo primero que tenemos que recordar es que una matriz en Java es un array, un array bidimensional:

  1. int[][] matriz1 = {{1,2,3},{4,5,6}};
  2. int[][] matriz2 = {{1,2,3},{4,5,6}};

Es por ello que podríamos reducir que para comparar Matrices en Java podríamos realizar una comparación de Arrays mediante el método .equals.

  1. if (Arrays.equals(matriz1, matriz2))
  2. System.out.println("Son matrices iguales");
  3. else
  4. System.out.println("Son matrices diferentes");

El problema es que el método equals va a ejecutar el comparador de objetos.

  1. .equals(Object[],Object[])

Este comparador solamente va a evaluar las referencias de los objetos y va a ver que son dos objetos diferentes. No realiza ninguna comparación lógica. Por lo tanto el resultado será de false.

Para realizar una comparación lógica deberemos de realizar un análisis recursivo. Y para ello tenemos el método .deepEquals(). Este método evaluará de forma cada uno de los elementos que contienen el array bidimensional.

  1. if (Arrays.deepEquals(matriz1, matriz2))
  2. System.out.println("Son matrices iguales");
  3. else
  4. System.out.println("Son matrices diferentes");

En este caso al comparar matrices en Java mediante el método .deepEquals obtendremos que las matrices definidas inicialmente son iguales.

Vídeos sobre Java