我有一个编程赋值,它需要一个包含方法来覆盖原始的arrraylist包含方法。该方法应检查列表是否已排序,然后在数组列表上对键执行二进制搜索。如果arraylist没有排序,那么它应该只执行arraylist中的原始包含方法。这是我现在的代码。
public void contains(String key) {
System.out.println("Initializing");
if(isSorted()) {
int first = 0;
int last = this.size() - 1;
while(last >= first) {
int mid = (first + last) / 2;
if (this.get(mid).equals(key)) {
System.out.println(this.get(mid));
}
if (this.get(mid).compareTo(key) == 1) {
System.out.println(this.get(mid));
first = mid + 1;
}
if (this.get(mid).compareTo(key) == -1) {
System.out.println(this.get(mid));
last = mid - 1;
}
}
}
else {
System.out.println("Character does not exist");
}
}
当我运行它时,我没有得到任何错误,但是当我尝试执行搜索时,什么也没有发生。
https://stackoverflow.com/questions/52469733
复制相似问题