黑马程序员技术交流社区

标题: Collections.binarySearch(list,"g");问题 [打印本页]

作者: LsEmpire    时间: 2017-2-26 15:44
标题: Collections.binarySearch(list,"g");问题
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?
作者: 香草芭芙    时间: 2017-2-26 16:06
二分查找的前提是 有序集合...
[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

作者: lvshen9    时间: 2017-2-27 09:08
楼上正解

作者: kimoti    时间: 2017-2-27 12:29
学习了! day day up




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