黑马程序员技术交流社区

标题: 关于Collections.binarySearch() [打印本页]

作者: 西门吹风    时间: 2014-6-18 11:16
标题: 关于Collections.binarySearch()
  1. import java.util.*;
  2. class CollectionsDemo3
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 List<String> ls=new ArrayList<String>();
  7.                 ls.add("add");
  8.                 ls.add("ad");
  9.                 ls.add("asded");
  10.                 ls.add("asdaad");
  11.                 System.out.println(ls);
  12.                 System.out.println(Collections.binarySearch(ls,"add"));   //不应该打印0吗?为什么是-3
  13.         }
  14. }
复制代码


作者: 张辉玉    时间: 2014-6-18 22:20
在java帮助文档中  是这样说的,使用二分搜索法搜索指定列表,在进行此调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List) 方法)。如果没有对列表进行排序,则结果是不确定的。如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。
你在排序前,添加个     Collections.sort(ls);排序完,就不会出问题了。




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