A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 西门吹风 中级黑马   /  2014-6-18 11:16  /  1137 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

1 个回复

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

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马