問題の説明
8000 項目を含む文字列のリストがあります。リストを含む項目について以下に説明します。
List<String> stringList = new List<String>(8000);
stringList.add("this is first string.");
stringList.add("text which I want to search.");
stringList.add("separated string items.");
....
リスト内のすべての項目が 3 つ以上の単語を含む文であることがわかります。
質問。
外部からのユーザーは、次の方法でリストを検索できます。たとえば、ユーザーが「最初に」単語を検索したい場合、検索アルゴリズムはこのように機能する必要があります。
検索アルゴリズムはリストを実行し、単語 " first " を文内のすべての単語と比較する必要があり、文内の単語が " first " で始まる場合は、その文を返す必要があります ". したがって、このアルゴリズムを実現するために、次のコードを記述します。以下のコードを見ることができます。
私が実装するアルゴリズムは非常に遅いので、より高速なアルゴリズムがあるかどうか、またはアルゴリズムを高速化する方法を知りたいですか?
コード例
Iterator<ContactInformation> stringListIter = stringList .iterator();
while (stringListIter.hasNext()) {
String currItem = stringListIter.next();
String[] separatedStr = currItem.split(" ");
for(int i=0; i<separatedStr.lenght; ++i)
if(separatedStr[i].startsWith(textToFind))
retList.add(currItem);
}