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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ArrayList<String> list = new ArrayList<>();
                list.add("a");
                list.add("g");
                list.add("b");
                list.add("d");
                list.add("f");
                list.add("v");
                System.out.println(list);
                System.out.println(Collections.binarySearch(list, "g"));
这是输出:
[a, g, b, d, f, v]
-6
g应该在索引为1的位置,那为何输出会是-6?

3 个回复

倒序浏览
二分查找的前提是 有序集合...
[Java] 纯文本查看 复制代码
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("g");
list.add("b");
list.add("d");
list.add("f");
list.add("v");

list.sort(new Comparator<String>() {

    @Override
    public int compare(String o1, String o2) {

        return o1.compareTo(o2);
    }
    
});
System.out.println(list);
System.out.println(Collections.binarySearch(list, "g"));// 输出4
回复 使用道具 举报
回复 使用道具 举报
学习了! day day up
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马