我必须制作一个预测文本程序,其中一个方法是使用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;
}
你的代码中有什么可以看到的吗?我非常感谢你的帮助。谢谢!
答案 0 :(得分:0)
我不打算为你做功课,但要确保你没有混淆单词和签名;)