如果您只想检查字典中是否存在单词,为什么不使用 HashSet 呢?您可以使用每行一个单词的纯文本字典文件,或者至少这是我过去所做的。
不确定是否要更新它,但如果dictionary.com 提供了一个带有单词列表的文件,您可以下载该文件,然后打开该文件并将每个条目添加到您的哈希映射/集。假设不会删除任何单词,则只会覆盖现有条目。
编辑:刚刚写了一个测试程序,应该证明在检查你的单词时,hashmap 或 hash 集不会出现冲突。
import java.util.HashSet;
public class CollidingHash {
String value;
public CollidingHash(String s){
value=s;
}
@Override
public int hashCode(){
return 1;
}
@Override
public boolean equals(Object o){
if(! (o instanceof CollidingHash)){
return false;
}
CollidingHash c2 = (CollidingHash)o;
return value.equals(c2.value);
}
public static void main(String[] args) {
HashSet<CollidingHash> dict = new HashSet<CollidingHash>();
CollidingHash a = new CollidingHash("This");
CollidingHash b = new CollidingHash("That");
dict.add(a);
System.out.println("Is "+ (dict.contains(b)? "Bad": "OK"));
}
}
Edit2:添加了 Pace 提到的 equals 方法。