Java 使用字符串数组进行二进制搜索查询
我正在看前一段时间提交的一个问题,并对此进行了进一步的调查。链接如下: 第一个答案几乎回答了我的问题,但不是全部。在上图中,Java 使用字符串数组进行二进制搜索查询,java,Java,我正在看前一段时间提交的一个问题,并对此进行了进一步的调查。链接如下: 第一个答案几乎回答了我的问题,但不是全部。在上图中,数组有一组int值。但是,我有一个存储String值的数组,因此当我调用array[mid]时,它不允许这样做,因为mid是int值,而不是String。我收到错误“运算符
数组
有一组int
值。但是,我有一个存储String
值的数组,因此当我调用array[mid]
时,它不允许这样做,因为mid是int
值,而不是String
。我收到错误“运算符<未定义参数类型项String”
,我假设是因为我使用字符串数组调用mid
(一个int
值),虽然mid
实际上是对中间索引的引用,而不是存储在数组中的实际值
我可能在这里完全错了,因此看起来很愚蠢:p但我很困惑,感谢任何帮助 问题不在于使用mid
,它是int
,来索引字符串的数组。这很好。
问题是您试图将
运算符与字符串一起使用
要比较字符串
s,可以使用compareTo
而不是
因此,不是:
a[mid] < key
a[mid]
您可以使用:
a[mid].compareTo(key) < 0
a[mid]。与(键)比较<0
嘿,非常感谢。为什么在我提供的链接中,他们能够使用'>'运算符?@user3443834此运算符是为int
类型定义的,以及其他一些类型(double
,char
…),但不是为String
s定义的。