黑马程序员技术交流社区
标题:
关于Collections.binarySearch()
[打印本页]
作者:
西门吹风
时间:
2014-6-18 11:16
标题:
关于Collections.binarySearch()
import java.util.*;
class CollectionsDemo3
{
public static void main(String[] args)
{
List<String> ls=new ArrayList<String>();
ls.add("add");
ls.add("ad");
ls.add("asded");
ls.add("asdaad");
System.out.println(ls);
System.out.println(Collections.binarySearch(ls,"add")); //不应该打印0吗?为什么是-3
}
}
复制代码
作者:
张辉玉
时间:
2014-6-18 22:20
在java帮助文档中 是这样说的,使用二分搜索法搜索指定列表,在进行此调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List) 方法)。如果没有对列表进行排序,则结果是不确定的。如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。
你在排序前,添加个 Collections.sort(ls);排序完,就不会出问题了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2