Arrays.binarySearch(int[], int, int, int) in Java

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

Syntax:

int java.util.Arrays.binarySearch(int[] a, int fromIndex, int toIndex, int key)

This method takes four arguments one of type int array and the rest three are od type int as its parameters. This method searches a range of the specified array of ints for the specified value.

Note: The range must be sorted.

Parameters: Four parameters are required for this method.

a: the array to be searched.

fromIndex: the index of the first element (inclusive) to be searched.

toIndex: the index of the last element (exclusive) to be searched.

key: the value to be searched for.

Returns: index of the search key, if it is contained in the array within the specified range; otherwise, (-(insertion point) - 1).

Note: The insertion point is defined as the point at which the key would be inserted into the array: the index of the first element in the range greater than the key, or toIndex if all elements in the range are less than the specified key.

Throws:

1. IllegalArgumentException - if fromIndex > toIndex.

2. ArrayIndexOutOfBoundsException - if fromIndex < 0 or toIndex > a.length

Approach 1: When no exceptions

Java

import java.util.Arrays;

public class ArraysbinarySearchintRange {
    public static void main(String[] args) {

        int fromIndex = 2, toIndex = 4;

        // for type int
        int intArray[] = { 1, 3, 4, 5, 6, 7 };
        int intKey = 5;

        // to ensure array is sorted
        Arrays.sort(intArray);
        System.out.println(Arrays.binarySearch(intArray,
fromIndex, toIndex, intKey));
    }
}

Output:

3


Approach 2: IllegalArgumentException

Java

import java.util.Arrays;

public class ArraysbinarySearchintRange {
    public static void main(String[] args) {

        // for type int
        int intArray[] = { 1, 3, 4, 5, 6, 7 };

        int fromIndex = 5, toIndex = 4;
        int intKey = 5;

        // to ensure array is sorted
        Arrays.sort(intArray);
        System.out.println(Arrays.binarySearch(intArray,
fromIndex, toIndex, intKey));
    }
}

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.binarySearch(Arrays.java:1695)


 Approach 3: ArrayIndexOutOfBoundsException 

Java

import java.util.Arrays;

public class ArraysbinarySearchintRange {
    public static void main(String[] args) {

        // for type int
        int intArray[] = { 1, 3, 4, 5, 6, 7 };

        int fromIndex = 2, toIndex = 7;
        int intKey = 5;

        // to ensure array is sorted
        Arrays.sort(intArray);
        System.out.println(Arrays.binarySearch(intArray,
fromIndex, toIndex, intKey));
    }
}

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.binarySearch(Arrays.java:1695)


 

No comments:

Post a Comment