バイナリ検索に質問があります。Javaバイナリ検索の結果が1つ多いですか?
if(prefix.length()>1){
prefixlow=prefix.toLowerCase();
int n = Collections.binarySearch(words, prefixlow);
if (n < 0 && -n <= words.size()) {
String match = words.get(-n - 1);
if (match.startsWith(prefixlow)) {
// A completion is found
completion = match.substring(0+prefix.length());
keyboardwindow.jTextArea1.setText(prefix+completion);
}
}
else{keyboardwindow.jTextArea1.setText(prefix);}
}
は今、これはちょうど私の1件の結果を見つけることです:私は私が接頭辞でstrting文字列をリストを検索するためにこれを使用ArrayListのを持っています。次のステップは、この接頭辞で始まるリストからすべての単語を1つだけでなく取得することです。だから最初の質問は、これは常に接頭辞で始まる最初の単語を見つけるのですか?私はそれがあなたに接頭辞で始まるランダムな文字列を与えると思うので...どのようなtipps私はどのように私の接頭辞で始まる文字列の開始位置と終了位置を取得する?
このエラーが発生すると、私はこのエラーメッセージを受け取ります。java.lang.IndexOutOfBoundsException:インデックス:24、サイズ:24編集:ああ、私のホールリストは接頭辞で始まるので、私はループを止める必要があります。最後の要素 – QFireball
ああ、これのためのthx – QFireball