Bienvenidos sean a este post, hoy veremos un metodo para la clase Arrays.
Este metodo se encarga de comparar dos arrays y devuelve un valor booleano para indicar si son iguales o no. Veamos como es su sintaxis:
Arrays.equals(array1, array2);
Este metodo toma dos arrays como argumentos y los compara entre si para verificar si son iguales. En caso, de que sean iguales devuelve un valor de true. De lo contrario, devuelve un false. Para entender el concepto, vamos a analizar el siguiente ejemplo:
import java.util.*;
public class Arreglos
{
public static void main(String[] args)
{
String estado;
String[] arreglo1 = {"tinchicus","enzo","marta"};
String[] arreglo2 = {"enzo","tinchicus","marta"};
boolean res = Arrays.equals(arreglo1, arreglo2);
if (res) estado = "iguales"; else estado="diferentes";
System.out.println("Los arrays son " + estado);
}
}
Primero declaramos una variable de tipo String para usarla en un momento, luego definimos dos arrays con los mismos valores pero en distinto orden. Seguido a esto definimos una variable de tipo boolean que almacena el valor devuelto por el metodo aplicado a los dos arrays anteriores. Con este valor almacenado, usamos un condicional donde lo verificamos. Si es true, guardamos en estado el valor de iguales de lo contrario le asignamos el valor de diferentes (porque es false y no lo son). Para finalmente mostrar este valor indicando como son los dos arrays. Cual es el valor que nos devolvera? Compilemos y veamos como es la salida:
$ java Arreglos
Los arrays son diferentes
$
Porque nos dice que son diferentes si ambos valores tienen los mismo datos? Simple, este metodo solo los considera iguales si los valores son iguales y tienen el mismo orden. Para evitar este «fallo», vamos a modificar el codigo de la siguiente manera:
import java.util.*;
public class Arreglos
{
public static void main(String[] args)
{
String estado;
String[] arreglo1 = {"tinchicus","enzo","marta"};
String[] arreglo2 = {"enzo","tinchicus","marta"};
Arrays.sort(arreglo1);
Arrays.sort(arreglo2);
boolean res = Arrays.equals(arreglo1, arreglo2);
if (res) estado = "iguales"; else estado="diferentes";
System.out.println("Los arrays son " + estado);
}
}
Solamente hicimos una modificacion, agregamos dos lineas para ordenar mediante el metodo sort a cada array antes de compararlos. El resto sigue siendo el mismo codigo que teniamos, compilemos y veamos como es la salida:
$ java Arreglos
Los arrays son iguales
$
Ahora nos devolvio que son iguales porque cumplimos las dos condiciones para que sea asi. Primero, todos los valores son iguales y ahora tienen el mismo orden.
Nota:
Sobre el metodo Arrays.sort hablamos en este post.
En resumen, hoy hemos visto a Arrays.equals, que es, para que sirve, como se utiliza, y un ejemplo practico para poder verlo en accion. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
