m0_74004453 2022-11-16 13:24 采纳率: 80%
浏览 1
已结题

Collections的binarySearch的问题

问题遇到的现象和发生背景

关于Collections的binarySearch方法,正常查找值的位置,请问为什么是-4而不是0呢?

用代码块功能插入代码,请勿粘贴截图

public class Demo1 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("zoo");
list.add("animals");
list.add("friends");

    System.out.println(list);
    
    System.out.println(Collections.binarySearch(list, "zoo"));
    
    
}

}

运行结果及报错内容

[zoo, animals, friends]
-4

  • 写回答

1条回答 默认 最新

  • miaoch 2022-11-16 14:19
    关注

    使用binarySearch的前提是 集合本身是有序的。他使用的是二分查找。
    将add的顺序调整成
    list.add("animals");
    list.add("friends");
    list.add("zoo");
    就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月16日