Arrays.binarySearch(array, key) 作用:查询元素值key在数组array中的下标 (要求数组中元素已经按升序排列)
int[] arr11 = { 10, 50, 40, 30 };
Arrays.sort(arr11);
// int aa = Arrays.binarySearch(arr11, 30); //1
int aa = Arrays.binarySearch(arr11, 20); //-2
System.out.println(aa);
查看JDK API 才知道:
binarySearch
public static int binarySearch(byte[] a, byte key)
-
使用二分搜索法来搜索指定的 byte 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过
sort(byte[])
方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。 -
-
参数:
-
a
- 要搜索的数组 -
key
- 要搜索的值
-
如果数组a中如果没有key,则返回值为某个负值,表示为了保持排序状态,此目标元素应该插入的位置“-(插入点)-1”;
如果找到了key,则返回key所在元素下标。
插入点是指,第一个大于查找对象的元素在数组中的位置,如果数组所有元素都小于要查找的对象,插入点就等于a.size().