0Pricing
Java Academy · Lección

Arrays.equals y toString

Compare e imprima arrays

Arrays.equals y toString es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.

Comparar e imprimir

Los arrays no sobrescriben equals ni toString de una forma útil. La clase de utilidad Arrays proporciona versiones de equals y toString que inspeccionan realmente el contenido de los elementos.

Por qué == falla

Usar == con arrays compara referencias, no el contenido. Dos arrays diferentes con elementos idénticos no son iguales mediante ==.

public class Main {
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        int[] b = {1, 2, 3};
        System.out.println(a == b);
    }
}

Arrays.equals

Arrays.equals(a, b) devuelve true cuando ambos arrays tienen la misma longitud y elementos iguales en las mismas posiciones.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        int[] b = {1, 2, 3};
        System.out.println(Arrays.equals(a, b));
    }
}

El orden importa

El orden de los elementos es importante. Dos arrays con los mismos valores en un orden diferente no son iguales.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        int[] b = {3, 2, 1};
        System.out.println(Arrays.equals(a, b));
    }
}

Comparar arrays de objetos

En los arrays de objetos, Arrays.equals compara los elementos mediante su propio método equals.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] a = {"x", "y", "z"};
        String[] b = {"x", "y", "z"};
        System.out.println(Arrays.equals(a, b));
    }
}

toString para obtener una salida legible

Imprimir directamente un array muestra algo como [I@1b6d3586, es decir, el nombre de la clase y el hash. Arrays.toString produce un formato legible como [1, 2, 3].

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3};
        System.out.println(nums);
        System.out.println(Arrays.toString(nums));
    }
}

Arrays anidados: deepEquals

En los arrays de arrays, equals normal solo comprueba las referencias externas de cada fila. Use Arrays.deepEquals para comparar el contenido anidado.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] a = {{1, 2}, {3, 4}};
        int[][] b = {{1, 2}, {3, 4}};
        System.out.println(Arrays.equals(a, b));
        System.out.println(Arrays.deepEquals(a, b));
    }
}

Arrays anidados: deepToString

Del mismo modo, Arrays.deepToString imprime claramente los arrays anidados, mientras que toString normal mostraría las referencias internas.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] grid = {{1, 2}, {3, 4}};
        System.out.println(Arrays.toString(grid));
        System.out.println(Arrays.deepToString(grid));
    }
}

hashCode para arrays

Si necesita un hash basado en el contenido, use Arrays.hashCode y Arrays.deepHashCode para los arrays anidados. Estos métodos son coherentes con Arrays.equals.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        int[] b = {1, 2, 3};
        System.out.println(Arrays.hashCode(a) == Arrays.hashCode(b));
    }
}

Comparar después de ordenar

Para comprobar si dos arrays contienen el mismo multiconjunto de valores sin importar el orden, ordene copias de ambos y compárelas después con Arrays.equals.

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] a = {3, 1, 2};
        int[] b = {2, 3, 1};
        int[] ca = Arrays.copyOf(a, a.length);
        int[] cb = Arrays.copyOf(b, b.length);
        Arrays.sort(ca);
        Arrays.sort(cb);
        System.out.println(Arrays.equals(ca, cb));
    }
}

Registrar datos es fácil

Durante la depuración, incluya los arrays en Arrays.toString dentro de las instrucciones de impresión para poder leer los valores reales en lugar de ver referencias crípticas.

Comprobación rápida

Compruebe su comprensión de la comparación de arrays.

Repaso

Aprendió a comparar e imprimir arrays.

  • == compara referencias; use Arrays.equals para comprobar la igualdad del contenido.
  • Tanto el orden como la longitud son importantes.
  • Arrays.toString proporciona una salida legible; deepToString gestiona el anidamiento.
  • deepEquals compara arrays anidados.

Preguntas frecuentes

¿La lección «Arrays.equals y toString» es gratis?

Sí — el texto completo de «Arrays.equals y toString» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Arrays.equals y toString»?

Compare e imprima arrays Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Arrays.equals y toString»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Arrays.sort y ordenación
  2. Arrays.binarySearch
  3. Arrays.fill y copyOf
  4. Arrays.equals y toString
← Volver a Java Academy