已有101人关注
关于数组查询
发表在Java图书答疑 2016-05-30
是否精华
版块置顶:
P112例6.17  如果指定的范围不存在要搜索的值,返回的值是怎么确定的。书上的解释看不懂,求解释一下,谢谢
分享到:
精彩评论 1
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2016-05-30
沙发
这是一段的确有问题,对学习者造成了很大误解,我讲这一点文字重新编排整理,请参考下端解释:

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]
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照