这是一段的确有问题,对学习者造成了很大误解,我讲这一点文字重新编排整理,请参考下端解释:
binarySearch(Object[] a.Object key)
a:要搜索的数组。
key:要搜索的值。
如果key包含在数组中,则返回搜索值的索引;否则返回(-(插入点) - 1)。插入点是搜索键将要插入数组的那一点,即第一个大于此键的元素索引。
[font color=#0000FF]【例6.17】 查询数组元素,实例代码如下:
int arr[] = new int[] { 4, 25, 10 };//创建并初始化数组
Arrays.sort(arr);//将数组进行排序
int index = Arrays.binarySearch(arr, 8);[/font]
[font color=#FF0000]上面的代码中变量index的值是元素“8”在数组arr中的索引位置。由于数组中不存在元素“8”。如果对数组进行排序,元素“8”应该排在“4”之后、“10” 之前,因此元素“8”的插入点为数组中第二个元素的位置,即索引1,所以index的值等于(-(1) - 1),即-2。[/font]