哪种数据结构更适合用 Java 制作字典?树或哈希表哪个更好?
问问题
6165 次
4 回答
5
一张地图。没有其他的。如果要排序,请使用 TreeMap。否则:HashMap。
字典将(关键)词映射到它的描述或翻译。
于 2012-10-18T18:55:04.150 回答
1
我会使用类似的东西
Map<String,Integer> dictionary = Collections.synchronizedMap(new TreeMap<String,Integer>());
您可以使用 Class 对象代替 Integer 作为 String 键的值,该对象可能可以保存一个列表,该列表包含该单词在文档中的所有位置。有一些方法可以轻松地从TreeMap
. 以下是您获取迭代器的方式TreeMap.
Set<Entry<String,Integer>> set = dictionary.entrySet();
Iterator<Entry<String,Integer>> entryItr = set.iterator();
Entry<String,Integer> entry = null;
while(entryItr.hasnext()){
entry = entryItr.next();
// Do whatever you want.
}
于 2012-10-18T18:59:19.493 回答
0
我会使用 Trie,尤其是为了提高内存效率和前缀查找。我有一个在 github 上实现 APL 下的地图接口的实现:https ://github.com/Blazebit/blaze-utils/tree/c7b1fa586590d121d9f44c1686cb58de0349eb0b/blaze-common-utils
检查一下,也许它比简单的地图更适合您的需求。
于 2012-10-19T09:34:24.583 回答
0
根据麻省理工学院算法简介中的讲座,我会说最好使用哈希表。因为您可以在 O(1) 而不是 O(logn) 中进行操作
于 2016-02-09T02:53:24.523 回答