ユーザーが選択したtxtファイルから単語リストをロードし、単語ごとにTreeSetに保存する小さなJavaプログラムを作成しました。ここで、ユーザーがテキスト フィールド (keyPressed) に何かを入力するたびに関数が呼び出され、ユーザーが入力した文字で始まるこの TreeSet 内のすべての単語を検索/返す関数を作成する必要があります。私の解決策は、セット内の最初の要素から最後の要素まで繰り返し、基準を満たす要素を出力することです。
Iterator <String>itr = dictionary.iterator();
String currentWord;
String tempUserInput = "av"; // Temporary, to simulate user input
while(itr.hasNext()){
currentWord = itr.next();
if (currentWord.startsWith(tempUserInput)) {
System.out.println(currentWord); // Temporary, to simulate output
}
}
これは適切に機能しますが、戻り値として 300000 ワード以上を渡す必要があるため、私の質問は次のとおりです。この問題に対するより効率的な解決策はありますか?