Arrays.equals e toString
Compare e imprima matrizes.
Arrays.equals e toString é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
Comparando e Exibindo
Os vetores não substituem equals nem toString de uma forma útil. A classe utilitária Arrays fornece versões de equals e toString que realmente inspecionam o conteúdo dos elementos.
Por Que == Falha
Usar == em vetores compara referências, não o conteúdo. Dois vetores diferentes com elementos idênticos não são iguais com ==.
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) retorna true quando os dois vetores têm o mesmo comprimento e elementos iguais nas mesmas posições.
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));
}
}A Ordem Importa
A ordem dos elementos é significativa. Dois vetores com os mesmos valores em uma ordem diferente não são iguais.
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));
}
}Comparando Vetores de Objetos
Para vetores de objetos, Arrays.equals compara os elementos usando o próprio método equals de cada um.
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 uma Exibição Legível
Exibir um vetor diretamente mostra algo como [I@1b6d3586, o nome da classe e o código hash. Arrays.toString produz uma forma legível, 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));
}
}Vetores Aninhados: deepEquals
Para vetores de vetores, equals simples verifica apenas as referências externas de cada linha. Use Arrays.deepEquals para comparar o conteúdo aninhado.
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));
}
}Vetores Aninhados: deepToString
Da mesma forma, Arrays.deepToString exibe vetores aninhados com clareza, enquanto toString simples mostraria as referências 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));
}
}Código de Dispersão para Vetores
Se precisar de um código de dispersão baseado no conteúdo, use Arrays.hashCode e Arrays.deepHashCode para vetores aninhados. Eles são consistentes com 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));
}
}Comparando Depois da Ordenação
Para verificar se dois vetores contêm o mesmo multiconjunto de valores, independentemente da ordem, ordene cópias de ambos e depois compare-os com 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));
}
}Registro Simplificado
Durante a depuração, envolva os vetores em Arrays.toString dentro das instruções de impressão para conseguir ler os valores, em vez de ver referências enigmáticas.
Verificação Rápida
Teste sua compreensão da comparação de vetores.
Recapitulação
Você aprendeu a comparar e exibir vetores.
==compara referências; useArrays.equalspara verificar a igualdade do conteúdo.- A ordem e o comprimento são importantes.
Arrays.toStringfornece uma saída legível;deepToStringtrata do aninhamento.deepEqualscompara vetores aninhados.
Perguntas Frequentes
A aula “Arrays.equals e toString” é grátis?
Sim — o texto completo de “Arrays.equals e toString” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “Arrays.equals e toString”?
Compare e imprima matrizes. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Arrays.equals e toString”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Arrays.sort e Ordenação
- Arrays.binarySearch
- Arrays.fill e copyOf
- Arrays.equals e toString