我必须制作一个预测文本程序,其中一种方法是使用 ArrayList 和方法 Collections.binarySearch。有人告诉我们,我们必须使用类似的方法将字典中的所有单词及其相应的数字签名添加到 ArrayList 中,即:-
public class WordSig implements Comparable<WordSig> {
private String word;
private String signature;
public WordSig(String word){
this.word = word;
this.signature = ListDictionary.wordToSignature(word);
}
public String getSignature(){
return signature;
}
public String toString() {
return signature + ", " + word;
}
@Override
public int compareTo(WordSig ws){
return signature.compareTo(((WordSig)ws).signature);
}
}
这样做之后,我对我的方法进行了排序,然后实现了一个名为 signatureToWords 的方法,该方法采用给定的数字签名并尝试找到找到该签名的索引,但它一直返回 -1。signatureToWords 方法如下所示:-
public static Set<String> signatureToWords(String signature) {
int index = Collections.binarySearch(listOfDictionary,
new WordSig(signature));
System.out.println(index);
return null;
}
你能在我的代码中看到什么错误吗?我真的很感激帮助。谢谢!