Hoy vamos a discutir la forma más sencilla de comprobar si dos arrays son iguales o no. Dos arreglos se consideran iguales si ambos arreglos contienen el mismo número de elementos y todos los pares de elementos correspondientes en los dos arreglos son iguales. En otras palabras, dos arreglos son iguales si contienen los mismos elementos en el mismo orden. Además, dos referencias de array se consideran iguales si ambas son nulas . La clase Arrays en Java proporciona el método Arrays.equals() para verificar si dos arrays son iguales o no.
Syntax : public static boolean equals(int[] a, int[] a2) Parameters : a - one array to be tested for equality a2 - the other array to be tested for equality Returns : true if the two arrays are equal
Otras variantes:
- public static boolean equals(byte[] a, byte[] a2)
- public static boolean equals(short[] a, short[] a2)
- public static boolean equals(long[] a, long[] a2)
- public static boolean equals(float[] a, float[] a2)
- public static boolean equals(doble[] a, doble[] a2)
- public static boolean equals(char[] a, char[] a2)
- public static boolean equals(boolean[] a, boolean[] a2)
- public static boolean equals(Object[] a, Object[] a2)
Java
// Java program to demonstrate working of Arrays.equals() import java.util.Arrays; public class ArrayEqualDemo { public static void main(String[] args) { // Let us create different integers arrays int[] arr1 = new int [] {1, 2, 3, 4}; int[] arr2 = new int [] {1, 2, 3, 4}; int[] arr3 = new int [] {1, 2, 4, 3}; System.out.println("is arr1 equals to arr2 : " + Arrays.equals(arr1, arr2)); System.out.println("is arr1 equals to arr3 : " + Arrays.equals(arr1, arr3)); } }
Producción:
is arr1 equals to arr2 : true is arr1 equals to arr3 : false
También podemos usar Arrays.equals() para verificar la igualdad de la array de objetos de la clase definida por el usuario. Eche un vistazo a la última variante del método Arrays.equals()
Nota: – En el caso de arrays de Objetos, debe anular el método equals para proporcionar su propia definición de igualdad; de lo contrario, obtendrá un resultado que depende de lo que devuelva el método equals() de la clase Object . En el programa a continuación, estamos verificando la igualdad de rollno, nombre y dirección para un estudiante.
Java
// Java program to demonstrate working of Arrays.equals() // for user defined objects. import java.util.Arrays; public class ArrayEqualDemo { public static void main (String[] args) { Student [] arr1 = {new Student(111, "bbbb", "london"), new Student(131, "aaaa", "nyc"), new Student(121, "cccc", "jaipur")}; Student [] arr2 = {new Student(111, "bbbb", "london"), new Student(131, "aaaa", "nyc"), new Student(121, "cccc", "jaipur")}; Student [] arr3 = {new Student(111, "bbbb", "london"), new Student(121, "dddd", "jaipur"), new Student(131, "aaaa", "nyc"), }; System.out.println("is arr1 equals to arr2 : " + Arrays.equals(arr1, arr2)); System.out.println("is arr1 equals to arr3 : " + Arrays.equals(arr1, arr3)); } } // A class to represent a student. class Student { int rollno; String name, address; // Constructor public Student(int rollno, String name, String address) { this.rollno = rollno; this.name = name; this.address = address; } @Override public boolean equals(Object obj) { // typecast obj to Student so that we can compare students Student s = (Student) obj; return this.rollno == s.rollno && this.name.equals(s.name) && this.address.equals(s.address); } }
Producción:
is arr1 equals to arr2 : true is arr1 equals to arr3 : false
Nota: String.equals() solo se puede realizar en arrays 1-D y, por lo tanto, no funciona para arrays multidimensionales. Use Arrays.deepEquals(Object[], Object[]) en su lugar, devuelve verdadero si las dos arrays especificadas son profundamente iguales entre sí.
Java
import java.util.Arrays; public class ArrayEqualDemo_2 { public static void main(String[] args) { // Let us create array of arrays int[][] arr1 = { { 0, 1 }, { 1, 0 } }; int[][] arr2 = { { 0, 1 }, { 1, 0 } }; System.out.println("is arr1 equals to arr2 : " + Arrays.equals(arr1, arr2)); System.out.println("is arr1 deepequals to arr2 : " + Arrays.deepEquals(arr1, arr2)); } }
Producción:
is arr1 equals to arr2 : false is arr1 deepequals to arr2 : true
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA