Java Array mismatch()
O método Arrays.mismatch()
em Java faz parte do pacote java.util
e é usado para encontrar o primeiro índice no qual dois arrays diferem. Esse método é útil para comparar matrizes para determinar onde elas começam a ter elementos diferentes. Ele retorna o índice da primeira incompatibilidade ou -1 se as matrizes forem idênticas.
Uso
Arrays.mismatch()
é normalmente usado quando você precisa comparar duas matrizes elemento por elemento para identificar o primeiro ponto de diferença. Ele suporta matrizes de todos os tipos primitivos, bem como matrizes de objetos.
Sintaxe
int mismatchIndex = Arrays.mismatch(array1, array2);
array1
earray2
: As matrizes a serem comparadas.mismatchIndex
: O índice da primeira incompatibilidade, ou -1 se nenhuma incompatibilidade for encontrada.
Exemplos
Exemplo 1: Matrizes idênticas
import java.util.Arrays;
public class MismatchExample1 {
public static void main(String[] args) {
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {1, 2, 3, 4, 5};
int mismatchIndex = Arrays.mismatch(array1, array2);
System.out.println("Mismatch index: " + mismatchIndex);
}
}
Neste exemplo, array1
e array2
são idênticos. O método Arrays.mismatch()
retorna -1, indicando que não há incompatibilidades.
Exemplo 2: Matrizes diferentes
import java.util.Arrays;
public class MismatchExample2 {
public static void main(String[] args) {
String[] array1 = {"apple", "banana", "cherry"};
String[] array2 = {"apple", "berry", "cherry"};
int mismatchIndex = Arrays.mismatch(array1, array2);
System.out.println("Mismatch index: " + mismatchIndex);
}
}
Aqui, as matrizes diferem no índice 1, onde "banana" em array1
é diferente de "berry" em array2
. O método Arrays.mismatch()
retorna 1.
Exemplo 3: Matrizes de comprimentos diferentes
import java.util.Arrays;
public class MismatchExample3 {
public static void main(String[] args) {
char[] array1 = {'a', 'b', 'c'};
char[] array2 = {'a', 'b'};
int mismatchIndex = Arrays.mismatch(array1, array2);
System.out.println("Mismatch index: " + mismatchIndex);
}
}
Nesse caso, array1
é mais longo do que array2
. O método retorna 2, que é o índice em que array2
termina e array1
tem um elemento adicional.
Dicas e práticas recomendadas
- Segurança nula: Certifique-se de que nenhuma das matrizes seja nula antes de chamar
Arrays.mismatch()
, pois isso gerará umNullPointerException
. - Comprimentos da matriz: Considere o comprimento de ambas as matrizes. Se os vetores tiverem comprimentos diferentes e nenhuma incompatibilidade for encontrada até o comprimento do vetor mais curto, o método retornará o comprimento do vetor mais curto.
- Desempenho: o site
Arrays.mismatch()
pode ser mais eficiente do que a iteração manual em matrizes, especialmente em matrizes grandes. - Compatibilidade de tipo: Certifique-se de que as matrizes que estão sendo comparadas sejam do mesmo tipo, pois o método não realiza conversão de tipos.
Usando o site Arrays.mismatch()
, os desenvolvedores podem determinar com eficiência o primeiro ponto de diferença entre duas matrizes, auxiliando nas tarefas de depuração e comparação de dados.