问题描述
我有字符串列表,其中包含 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.");
....
所以你可以看到我列表中的每个项目都是一个包含三个以上单词的句子。
问题。
外部用户可以通过以下方式搜索列表。例如用户想要搜索单词“ first ”,搜索算法必须以这种方式工作。
搜索算法必须遍历列表并将单词“ 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);
}