Este post irá verificar se dois arrays de strings são iguais ou não em Java. As duas arrays de strings são consideradas iguais se ambas as arrays tiverem o mesmo comprimento e contiverem os mesmos elementos na mesma ordem.
1. Comparando Arrays Unidimensionais
Uma solução ingênua é escrever nosso próprio método para verificar a igualdade do array de strings.
|
public static boolean checkEquality(String[] s1, String[] s2) if (s1 == null || s2 == null) { for (int i = 0; i < n; i++) if (!s1[i].equals(s2[i])) { public static void main(String[] args) String[] s1 = { "A", "B", "C" }; String[] s2 = { "A", "B", "C" }; if (checkEquality(s1, s2)) { System.out.println("Both arrays are equal"); System.out.println("Both arrays are not equal"); |
Download Executar código
Resultado:
Both arrays are equal
Aqui está uma versão equivalente usando a API Stream.
|
import java.util.stream.IntStream; public static boolean checkEquality(String[] s1, String[] s2) if (s1 == null || s2 == null || s1.length != s2.length) { return IntStream.range(0, s1.length).allMatch(i -> s1[i].equals(s2[i])); public static void main(String[] args) String[] s1 = { "A", "B", "C" }; String[] s2 = { "A", "B", "C" }; if (checkEquality(s1, s2)) { System.out.println("Both arrays are equal"); System.out.println("Both arrays are not equal"); |
Download Executar código
Resultado:
Both arrays are equal
o java.util.Arrays classe fornece dois métodos convenientes para comparação de arrayes – equals() e deepEquals(). Podemos usar qualquer um dos métodos para comparação de array de strings.
|
public static void main(String[] args) String[] s1 = { "A", "B", "C" }; String[] s2 = { "X", "Y", "Z" }; if (Arrays.equals(s1, s2)) { System.out.println("Both arrays are equal"); System.out.println("Both arrays are not equal"); |
Download Executar código
Resultado:
Both arrays are not equal
2. Comparando Arrays Multidimensionais
Assim como os arrays unidimensionais, podemos escrever nosso próprio método para verificar a igualdade dos arrays multidimensionais.
|
public static boolean checkEquality(String[][] s1, String[][] s2) if (s1 == null || s2 == null) { for (int i = 0; i < n; i++) if (s1[i].length != s2[i].length) { for (int j = 0; j < s1[i].length; j++) if (!s1[i][j].equals(s2[i][j])) { public static void main(String[] args) if (checkEquality(s1, s2)) { System.out.printf("Both arrays are equal"); System.out.printf("Both arrays are not equal"); |
Download Executar código
Resultado:
Both arrays are not equal
Arrays.equals() método não funcionará para arrays multidimensionais. Devemos usar Arrays.deepEquals() método em vez disso.
|
public static void main(String[] args) System.out.println("equals() returns " + Arrays.equals(s1, s2)); System.out.println("deepEquals() returns " + Arrays.deepEquals(s1, s2)); |
Download Executar código
Resultado:
equals() returns false
deepEquals() returns true
Isso é tudo sobre comparar dois arrays de strings para igualdade em Java.
Obrigado por ler.
Por favor, use nosso compilador online para postar código em comentários usando C, C++, Java, Python, JavaScript, C#, PHP e muitas outras linguagens de programação populares.
Como nós? Indique-nos aos seus amigos e ajude-nos a crescer. Codificação feliz 🙂