gpt4 book ai didi

java - 使用需要对象作为参数的compareTo 来比较字符串

转载 作者:行者123 更新时间:2023-12-02 13:32:52 26 4
gpt4 key购买 nike

我创建了一个扩展 ArrayList 的类,名为sortedWordList,用于保存字符串并对其进行排序。我想实现二分搜索来覆盖 indexOf 方法。

我无法使用compareTo 来比较我的字符串。我知道我正在将类型 Object 传递给compareTo,但我相信这必须是我的参数类型才能覆盖 ArrayList 的 indexOf 方法。

我的二分搜索算法可能不正确,因为我还没有机会调试它,所以你可以忽略它。

@Override
public int indexOf(Object o) {

int min = 0;
int max = len - 1;
while (true){
int mid = (int)((min + max)/ 2);
if (this.get(mid).compareTo(o) == 0){
return(mid);
}
if (this.get(mid).compareTo(o) < 0){
min = mid;
}
else if (this.get(mid).compareTo(o) > 0){
max = mid;
}


if (max == mid) break;

}

return -1;
}

最佳答案

如果您的 this.get(i) 返回一个 String,您可能希望使您的方法签名为

public int indexOf(String o)

并且,您可能不想扩展 ArrayList,而是 encapsulate it .

编辑:

如果您被迫坚持使用该方法签名,请使用 String.valueOf(o)Object 转换为 String

关于java - 使用需要对象作为参数的compareTo 来比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com