Skip to main content
Documents
Share
LinkedIn
Facebook
Twitter
Copy
Java keywordsIntroduction To JavaJava File HandlingJava Language BasicsJava ArraysJava Object-Oriented Programming

Java Array mismatch()

The Arrays.mismatch() method in Java is part of the java.util package and is used to find the first index at which two arrays differ. This method is useful for comparing arrays to determine where they start to have different elements. It returns the index of the first mismatch or -1 if the arrays are identical.

Usage

Arrays.mismatch() is typically used when you need to compare two arrays element by element to identify the first point of difference. It supports arrays of all primitive types as well as object arrays.

Syntax

int mismatchIndex = Arrays.mismatch(array1, array2);
  • array1 and array2: The arrays to be compared.
  • mismatchIndex: The index of the first mismatch, or -1 if no mismatch is found.

Examples

Example 1: Identical Arrays

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);
    }
}

In this example, array1 and array2 are identical. The Arrays.mismatch() method returns -1, indicating no mismatches.

Example 2: Different Arrays

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);
    }
}

Here, the arrays differ at index 1, where "banana" in array1 is different from "berry" in array2. The Arrays.mismatch() method returns 1.

Example 3: Arrays of Different Lengths

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);
    }
}

In this case, array1 is longer than array2. The method returns 2, which is the index where array2 ends and array1 has an additional element.

Tips and Best Practices

  • Null Safety: Ensure that neither of the arrays is null before calling Arrays.mismatch(), as it will throw a NullPointerException.
  • Array Lengths: Consider the length of both arrays. If arrays have different lengths and no mismatches are found up to the length of the shorter array, the method returns the length of the shorter array.
  • Performance: Arrays.mismatch() can be more efficient than manually iterating through arrays, especially for large arrays.
  • Type Compatibility: Ensure that the arrays being compared are of the same type, as the method does not perform type conversion.

Using Arrays.mismatch(), developers can efficiently determine the first point of difference between two arrays, aiding in debugging and data comparison tasks.