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 intint intArray[] = { 1, 3, 4, 5, 6, 7 };int intKey = 5;// to ensure array is sortedArrays.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 intint intArray[] = { 1, 3, 4, 5, 6, 7 };int fromIndex = 5, toIndex = 4;int intKey = 5;// to ensure array is sortedArrays.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 intint intArray[] = { 1, 3, 4, 5, 6, 7 };int fromIndex = 2, toIndex = 7;int intKey = 5;// to ensure array is sortedArrays.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