int index = Arrays.binarySearch(array, target);
二分查找
如果找到就会返回值的下标,如果没找到就会返回一个负数,这个负数取反之后就是查找的值应该在数组中的位置
比如排序数组 [2,5,7,10,15,18,20]
- 如果我们查找
18
,因为有这个数会返回 18
的下标 5
, - 如果我们查找
9
,因为没这个数会返回 -4
,对他取反之后就是3
,也就是说如果我们在数组中添加一个 9
,他在数组的下标是 3
,也就是第 4个位置(也可以这么理解,只要取反之后不是数组的长度,那么他就是原数组中第一个比他大的值的下标)