Comparar Matrices en Java

22/Jul/2015 Java , Deja un comentario

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


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*