java - 使用字符串数组进行二分查找查询

标签 java

我正在查看不久前提交的上一个问题,并对其进行了进一步的询问。链接在这里:

Java BinarySearch

第一个答案几乎回答了我的问题,但并不完全。在上面显示的 Array 中 Collection 了int值(value)观。但是,我有一个存储 String 的数组值,因此当我调用 Array[mid] 时它不允许这样做,因为 mid 是 int值而不是 String 。我收到错误 " The operator < is undefined for the argument type(s) Entry, String " ,我假设是因为我正在调用 mid ( int 值)与 array字符串,尽管 mid确实是引用了中间index不是 array 中存储的实际值.

我可能在这里完全错误,因此看起来很愚蠢:P但我很困惑,任何帮助表示赞赏。

最佳答案

问题不在于您使用 mid(它是一个 int)来索引 String 数组。这完全没问题。 问题是您尝试将 > 运算符与 String 一起使用。

要比较String,您可以使用compareTo而不是>

所以,而不是:

a[mid] < key

你会使用:

a[mid].compareTo(key) < 0

关于java - 使用字符串数组进行二分查找查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117344/

相关文章:

java - 无法触发构造函数级别验证

java - 如何展平 List<List<List<String>>>

java - 在 spark 提交中覆盖 spark 的库

java - 在Java中存储多个变量的好方法?

java - Eclipse 中的 Netbeans 项目

java - 为什么我的 JScrollpane 没有更新删除更改,尽管有 validate() 和 repaint()

java - 在运行时更改级别(通过 log4j.properties 和通过代码)

java - Curl 可以工作,但相应的 HttpConnection POST 请求失败,出现 400 错误

java - 元空间是从 native 内存中分配的吗?

java - c :set 的 JSP usebean