我有这段代码可以确定wordList文本文件中是否包含一个单词(忽略大小写)。但是,wordList文本文件可能有65000++行,使用下面的实现仅搜索单词将花费一分钟。您能想到更好的实现方法吗?
谢谢!
import java.io.*;
import java.util.*;
public class WordSearch
{
LinkedList<String> lxx;
FileReader fxx;
BufferedReader bxx;
public WordSearch(String wordlist)
throws IOException
{
fxx = new FileReader(wordlist);
bxx = new BufferedReader(fxx);
lxx = new LinkedList<String>();
String word;
while ( (word = bxx.readLine()) != null)
{
lxx.add(word);
}
bxx.close();
}
public boolean inTheList (String theWord)
{
for(int i =0 ; i < lxx.size(); i++)
{
if (theWord.compareToIgnoreCase(lxx.get(i)) == 0)
{
return true;
}
}
return false;
}
}
最佳答案
使用HashSet
,在其中放入每个单词的小写版本。平均而言,检查HashSet
是否包含指定的字符串是恒定时间(读取:非常快)的操作。