我正在查看不久前提交的上一个问题,并对其进行了进一步的询问。链接在这里:
第一个答案几乎回答了我的问题,但并不完全。在上面显示的 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/