予測テキスト プログラムを作成する必要があります。その方法の 1 つは、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;
}
私のコードに間違っている点はありますか? 助けていただければ幸いです。ありがとう!