mav*_*rik 7 java hashtable hashmap map linkedhashmap
我是Java World的新手(因为我在C/C++中编写初级).我在我的应用中使用地图.由于java.util.Map是抽象的,我需要实例化它的实现.通常我用的HashMap是:
Map<String, MyClass> x = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
但在Java文档,我发现许多其他的实现,如TreeMap,LinkedHashMap,HashTable,等我想知道我是否可以继续使用盲目的HashMap或有任何重要的差异Map实现.
要点的简要列表就可以了.谢谢.
Mar*_*nik 12
Hashtable,它是Java 1.0的遗留物;HashMap由于O(1)查找和依赖,equals并且hashCode保证为所有Java对象实现,因此是通用默认值;TreeMap为你提供了对地图条目的排序迭代(加上更多 - 参见NavigableMap),但需要一个比较策略并且插入和查找速度较慢 - O(logN) - 比HashMap;LinkedHashMap 迭代条目时保留插入/访问顺序.SortedMap实现提供了一些很棒的功能,比如headMap和tailMap.NavigableMap实现为假设排序键的操作提供了更多具有极佳性能的功能.
更进一步的是java.util.concurrent地图实现,例如ConcurrentHashMap,它提供了很好的并发性能和原子获取/放置操作.
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |