What are new methods have added to the Arrays class in Java 9?


Arrays class can contain various methods for manipulating arrays and also contains static factory methods that allow arrays to view as a list. Java 9 has added three important methods to Arrays class: Arrays.equals(), Arrays.compare() and Arrays.mismatch().

Arrays.equal() − In Java 9, few overloaded methods have added to the Arrays.equals() method. The new methods take fromIndex and toIndex parameters for the two provided arrays. These methods check the equality of the two arrays based on their relative index positions.

Syntax

public static boolean equals(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

In the above syntax, the method returns true if two specified arrays of ints and over the specified ranges are equal to another. The second method works the same for an array of chars.

Example

import java.util.Arrays;
public class CompareArrayTest {
   public static void arrayEqualsTest() {
      int[] existRows = {0, 1, 2, 3, 4, 5};
      int[] newRows = {3, 4, 5, 1, 2, 0};
      System.out.println(Arrays.equals(existRows, newRows));
      System.out.println(Arrays.equals(existRows, 1, 3, newRows, 3, 5));
      System.out.println(Arrays.equals(existRows, 3, 5, newRows, 0, 2));
   }
   public static void main(String args[]) {
      CompareArrayTest.arrayEqualsTest();
   }
}

Output

false
true
true


Arrays.compare() − In Java 9, few parameters have added to the Arrays.compare() method. With fromIndex/toIndex parameters that are used for relative position comparison.

Syntax

public static int compare(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

In the above syntax, the method compares two int arrays lexicographically over the specified ranges.

Example

import java.util.Arrays;
public class LexicographicalArraysTest {
   public static void main(String args[]) {
      LexicographicalArraysTest.compareSliceArraysTest();
   }
   public static void compareSliceArraysTest() {
      int[] tomMarks = {5, 6, 7, 8, 9, 10};
      int[] daisyMarks = {5, 6, 7, 10, 9, 10};
      int[] maryMarks = {5, 6, 7, 8};
      System.out.println(Arrays.compare(tomMarks, 0, 3, daisyMarks, 0, 3));
      System.out.println(Arrays.compare(tomMarks, 0, 4, maryMarks, 0, maryMarks.length));
      System.out.println(Arrays.compare(daisyMarks, 0, 4, maryMarks, 0, maryMarks.length));
   }
}

Output

0
0
1


Arrays.mismatch() −In Java 9, there are other overloaded methods of the Arrays.mismatch() method that enables us to find and return the index of the first mismatch between two slices of arrays.

Syntax

public static int mismatch(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

In the above syntax, the method finds and returns the relative index of the first mismatch between two int arrays over the specified range. It returns -1 if no mismatch has found. The index in the range of 0 (inclusive) up to the length (inclusive) of the smaller range.

Example

import java.util.Arrays;
public class MismatchMethodTest {
   public static void main(String[] args) {
      MismatchMethodTest.mismatchArraysTest();
   }
   public static void mismatchArraysTest() {
      int[] a = {1, 2, 3, 4, 5};
      int[] b = {1, 2, 3, 4, 5};
      int[] c = {1, 2, 4, 4, 5, 6};
      System.out.println(Arrays.mismatch(a, b));
      System.out.println(Arrays.mismatch(a, c));
      System.out.println(Arrays.mismatch(a, 0, 2, c, 0, 2));
      System.out.println(Arrays.mismatch(a, 0, 3, c, 0, 3));
      System.out.println(Arrays.mismatch(a, 2, a.length, c, 2, 5));
   }
}

Output

-1
2
-1
2
0

Updated on: 24-Feb-2020

145 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements