Если вы хотите проверить, существует ли слово в словаре, почему бы не использовать HashSet? Вы можете использовать текстовый файл словаря со словом в каждой строке, или, по крайней мере, это то, что я делал в прошлом.
Не уверен насчет обновления, но если dictionary.com предоставляет файл со списками слов, вы можете просто скачать его, затем открыть файл и добавить каждую запись в вашу хэш-карту / набор. Предполагая, что слова не будут удалены, существующие записи будут просто перезаписаны.
Редактировать: только что написал тестовую прогу, которая должна демонстрировать коллизии, не будет проблемой с хэш-картой или хэш-набором при проверке вашего слова.
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: добавлен метод equals, как упомянуто Pace.