Corrija o erro: tipos de valor e tipos de referência
Crie um método que retorne true se dois arrays contiverem valores idênticos e false caso contrário.
Para resolver este exercício, seu amigo escreve o seguinte código:
public static boolean checkEquals(int[] first, int[] second) {
return first == second;
}Mas, ao testar o código, você percebe que algo não está certo. Ao executá-lo, obtém os seguintes resultados:
Program.checkEquals(new int[]{1, 2}, new int[]{1, 3}) ➞ false
// Até aqui, tudo bem...
Program.checkEquals(new int[]{1, 2}, new int[]{1, 2}) ➞ false
// Ops! O que aconteceu?Reescreva o código do seu amigo para que ele verifique corretamente se dois arrays são iguais. Para serem iguais, os arrays devem ter os mesmos elementos na mesma ordem. Os testes abaixo devem passar:
Exemplos
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
Dica: Isso tem a ver com a diferença entre valor e tipos de referência.