java - 不能对对象数组列表使用二分查找吗?

标签 java binary-search

我尝试使用带有 Arraylist 的二分搜索,它给了我以下消息:

集合类型中的方法binarySearch(List>, T)不适用于参数(ArrayList, String)

代码如下:

ArrayList <Object> a = new ArrayList <Object> ();
String date = JOptionPane.showInputDialog(null, "Please enter the date.")
int index = Collections.binarySearch(a, date);

二分查找应该从多个日期的数组 (a) 中返回特定日期的位置。我做错了什么?

最佳答案

要执行二分搜索,您的 Collection必须排序。为了对某些东西进行排序,这个东西需要有一个明确定义的顺序。也就是说, Comparable<T> 是什么?接口(interface)是为了. Object不实现Comparable<Object>因此 ListObject无法排序(没有对它们进行排序的标准)。 请查看API了解更多详情。

关于java - 不能对对象数组列表使用二分查找吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743531/

相关文章:

java - 构建.gradle错误。抱歉,无法在此处输入错误,请查看正文

algorithm - 给定多个圆和一个点,如何找到哪个圆包含该点

python - Python中二叉树实现的错误

C++ 二进制搜索一个类

algorithm - 以最佳方式在二叉搜索树中找到第 k 个最小元素

java - 使用 openssl 的 cassandra java 客户端

java - 添加 GeoFence jar 库后 GeoServe 崩溃

java JScrollPane with JPanel with BoxLayout resizes elements

java - 由于访问权限不足,无法添加 LDAP : error code 50 - The entry uid=test@info. com,ou=People,o=Drive,dc=company,dc=com

c++ - 对 C++ 字符串的二进制搜索不起作用