我有这段代码可以确定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是否包含指定的字符串是恒定时间(读取:非常快)的操作。

10-06 04:42