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}) ➞ falseNotas
Pista: Esto tiene que ver con la diferencia entre valor y tipos de referencia.