我對二分查找有疑問。我在那裏我使用這個搜索列表中的字符串與前綴strting一個ArrayList:Java二進制搜索更多的一個結果?
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);}
}
現在,這只是尋找我一個結果。下一步是從列表中獲得所有從這個前綴開始的單詞,而不僅僅是一個單詞。所以第一個問題是,它總是會找到以前綴開頭的第一個單詞嗎?因爲我認爲它給了你一個隨機的字符串,只是從前綴開始......所以任何tipps我如何獲得以我的前綴開始的字符串的起始位置和結束位置?
這種解決方案我收到此錯誤按摩java.lang.IndexOutOfBoundsException:指數:24,大小:24編輯:哦確定的,因爲我的洞名單開始的前綴,但是,所以我需要停止循環的時候,他是在最後一個元素 – QFireball
oh thx爲此 – QFireball