Corrige el error: tipos de valor y tipos de referencia

Crea un método que devuelva true si dos arreglos contienen valores idénticos y false en caso contrario.

Para resolver este ejercicio, tu amigo escribe el siguiente código:

public static boolean checkEquals(int[] first, int[] second) {
    return first == second;
}

Pero, al probarlo, notas que algo no está del todo bien. Al ejecutar el código, obtienes los siguientes resultados:

Program.checkEquals(new int[]{1, 2}, new int[]{1, 3}) ➞ false
// Hasta aquí, todo bien...

Program.checkEquals(new int[]{1, 2}, new int[]{1, 2}) ➞ false
// ¡Vaya! ¿Qué pasó?

Reescribe el código de tu amigo para que compruebe correctamente si dos arreglos son iguales. Para ser iguales, deben tener los mismos elementos en el mismo orden. Las siguientes pruebas deben pasar:

Ejemplos

Program.checkEquals(new int[]{1, 2}, new int[]{1, 3}) ➞ false

Program.checkEquals(new int[]{1, 2}, new int[]{1, 2}) ➞ true

Program.checkEquals(new int[]{4, 5, 6}, new int[]{4, 5, 6}) ➞ true

Program.checkEquals(new int[]{4, 7, 6}, new int[]{4, 5, 6}) ➞ false

Notas

Pista: Esto tiene que ver con la diferencia entre valor y tipos de referencia.