黑马程序员技术交流社区

标题: 集合框架工具类binarySearch()方法 [打印本页]

作者: 李江    时间: 2013-7-19 12:04
标题: 集合框架工具类binarySearch()方法
本帖最后由 杨兴庭 于 2013-7-21 12:55 编辑

为什么结果都是负的啊?如果存在返回的角标不应该是正的吗、、、

Y7894H_Y2CEQW`RSP1TC]4E.jpg (54.24 KB, 下载次数: 0)

代码

代码

@A~]3(~@K9WH}SRGRQ`X${U.jpg (10.93 KB, 下载次数: 0)

运行结果

运行结果

作者: tonygone    时间: 2013-7-19 13:08
你搜索前没有排序。
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
使用二进制搜索算法来搜索指定列表,以获得指定对象。在进行此调用之前,必须根据列表元素的自然顺序 对列表进行升序排序(通过上面的 sort(List) 方法)。如果没有对列表进行排序,则结果是不明确的。如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。

作者: 禾呈    时间: 2013-7-19 13:12
使用binarySearch()方法查找,集合必须先排序。 如果不排序,就不能正确的查找,例如:

list查找 aaa ,会现在和z对比,aaa比z小,那么aaa在和abcd对比,aaa比abcd小,那么此方法将会返回(-(插入点) - 1) 即-0-1=-1.


作者: 李江    时间: 2013-7-19 14:48
tonygone 发表于 2013-7-19 13:08
你搜索前没有排序。
public static  int binarySearch(List

谢谢你啦。。。。
作者: 李江    时间: 2013-7-19 14:48
graspDN 发表于 2013-7-19 14:48
谢谢你啦。。。。

谢谢你啦。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2