Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定的数组,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查询需要。binarySearch()方法有两种参数类型。
(1)、binarySearch(Object[], Object key)
语法:binarySeach(Object[] a, Object key)
a:要搜索的数组。
key:要搜索的值。
如果key包含在数组中,则返回搜索的索引;否则返回“-1”或“-”(插入点)。插入点是搜索键将要插入数组的那一点,即第一个大于此键的元素索引。
import java.util.Arrays;//导入java.util.Arrays
public class Reference {
public static void main(String[] args){
int arr[] = new int[]{1, 8, 9, 4, 5};//定义int型数组
Arrays.sort(arr);//将数组进行排序
int index = Arrays.binarySearch(arr, 4);//查找元素4的索引位置
System.out.println("4的索引位置是:"+index);//输出索引
}
}
(2)、binarySearch(Object[]., int fromIndex, int toIndex, Object key)
语法:binarySearch(Object[]., int fromIdex, int toIndex, Object key)
a:要进行检索的数组。
fromIndex:指定范围的开始处索引(包含)。
toIndex:指定范围的结束处索引(不包含)。
key:要搜索的元素。
注意:如果指定的返回大于或等于数组的长度,则会报出ArrayIndexoutOfBoundsException异常
import java.util.Arrays;//导入java.util.Arrays
public class Rakel {
public static void main(String[] args){
String str[] = new String[]{"ab", "cd", "ef", "yz"};//定义String型数组str
Arrays.sort(str);//对数组进行排序
int index = Arrays.binarySearch(str, 0, 2, "cd");//在制定范围内搜索元素“cd”的索引位置
System.out.println("cd的索引位置是:"+index);//将索引输出
}
}