Java算法:检查字典中是否有字符串
我有一本语言词典(如英语、意大利语等),这实际上是一个每行有一个单词的文件
现在我想用一个方法创建一个类,该方法在输入检查中给出一个字符串,如果该字符串存在于该字典中
我的想法是该方法返回一个布尔值。在伪代码中:
boolean checkWord(String s){
if(StringIsInDictionary) return true;
return false
}
实现该功能的最佳方式应该是什么
考虑文件包含65000个单词。
# 1 楼答案
您可能不希望将单词存储为每行一个单词。更好的方法可能是只从磁盘读取一次文件,将单词存储在HashSet(一个由HashMap支持的集合,搜索效率很高),然后使用
set.contains("mystring")
。然而,这需要整个地图都在内存中,但是当你需要检查多个单词时,它会非常有效然后,您甚至可以返回并以更高效的方式将集合序列化到磁盘,从而加快初始加载速度