Arrays.compareUnsigned(byte[], int, int, byte[], int, int) in Java

Arrays.compareUnsigned(byte[], int, int, byte[], int, int): This method is available in java.util.Arrays class of Java.

Syntax:

int java.util.Arrays.compareUnsigned(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex)

This method takes six arguments, two of type byte array and the rest four are of type int as its parameters. This method compares two-byte arrays lexicographically over the specified ranges, numerically treating elements as unsigned.

Parameters: Six parameters are required for this method.

a: the first array to compare.

aFromIndex: the index (inclusive) of the first element in the first array to be compared.

aToIndex: the index (exclusive) of the last element in the first array to be compared.

b: the second array to compare.

bFromIndex: the index (inclusive) of the first element in the second array to be compared.

bToIndex: the index (exclusive) of the last element in the second array to be compared.

Returns:

1. The value 0 if, over the specified ranges, the first and second arrays are equal and contain the same elements in the same order.

2. A value less than 0 if, over the specified ranges, the first array is lexicographically less than the second array.

3. A value greater than 0 if, over the specified ranges, the first array is lexicographically greater than the second array.

Throws:

1. IllegalArgumentException - if aFromIndex > aToIndex or if bFromIndex > bToIndex.

2. ArrayIndexOutOfBoundsException - if aFromIndex < 0 or aToIndex > a.length or if bFromIndex < 0 or bToIndex > b.length.

3. NullPointerException - if either array is null.

Approach 1: When no exceptions

Java

import java.util.Arrays;

public class ArrayscompareUnsignedbyteRange {

    public static void main(String[] args) {

        // for byte type
        byte byteArraya[] = { 1, 2, 4, 5, 6 };
        byte byteArrayb[] = { 1, 2, 4, 5, 6 };

        int aFromIndex = 2, aToIndex = 4;
        int bFromIndex = 2, bToIndex = 4;

        System.out.println(Arrays.compareUnsigned(byteArraya,
aFromIndex, aToIndex, byteArrayb,
bFromIndex, bToIndex));
    }
}

Output:

0


Approach 2: IllegalArgumentException 

Java

import java.util.Arrays;

public class ArrayscompareUnsignedbyteRange {

    public static void main(String[] args) {

        // for byte type
        byte byteArraya[] = { 1, 2, 4, 5, 6 };
        byte byteArrayb[] = { 1, 2, 4, 5, 6 };

        int aFromIndex = 5, aToIndex = 4;
        int bFromIndex = 2, bToIndex = 4;

        System.out.println(Arrays.compareUnsigned(byteArraya,
aFromIndex, aToIndex, byteArrayb,
bFromIndex, bToIndex));
    }
}

Output:

Exception in thread "main" java.lang.IllegalArgumentException: fromIndex(5) > toIndex(4) at java.base/java.util.Arrays.rangeCheck(Arrays.java:718) at java.base/java.util.Arrays.compareUnsigned(Arrays.java:5918)



Approach 3: ArrayIndexOutOfBoundsException 

Java

import java.util.Arrays;

public class ArrayscompareUnsignedbyteRange {

    public static void main(String[] args) {

        // for byte type
        byte byteArraya[] = { 1, 2, 4, 5, 6 };
        byte byteArrayb[] = { 1, 2, 4, 5, 6 };

        int aFromIndex = 2, aToIndex = 7;
        int bFromIndex = 2, bToIndex = 4;

        System.out.println(Arrays.compareUnsigned(byteArraya,
aFromIndex, aToIndex, byteArrayb,
bFromIndex, bToIndex));
    }
}

Output:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7 at java.base/java.util.Arrays.rangeCheck(Arrays.java:725) at java.base/java.util.Arrays.compareUnsigned(Arrays.java:5918)



Approach 4: NullPointerException

Java

import java.util.Arrays;

public class ArrayscompareUnsignedbyteRange {

    public static void main(String[] args) {

        // for byte type
        byte byteArraya[] = null;
        byte byteArrayb[] = { 1, 2, 4, 5, 6 };

        int aFromIndex = 2, aToIndex = 4;
        int bFromIndex = 2, bToIndex = 4;

        System.out.println(Arrays.compareUnsigned(byteArraya,
aFromIndex, aToIndex, byteArrayb,
bFromIndex, bToIndex));
    }
}

Output:

Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "a" is null at java.base/java.util.Arrays.compareUnsigned(Arrays.java:5918)



No comments:

Post a Comment