【发布时间】:2012-02-15 20:46:02
【问题描述】:
HashTable 和 HashMap 上的常用操作(get、put、size)的运行时间(Big O notaton)是多少,有区别吗?
【问题讨论】:
HashTable 和 HashMap 上的常用操作(get、put、size)的运行时间(Big O notaton)是多少,有区别吗?
【问题讨论】:
Hashtable 和 HashMap 的渐近线没有区别,它们是 put 的可预测的预期摊销 O(1) 和 O(1) 的预期摊销 get,假设你有一个好的哈希函数。
最大的不同是Hashtable 会产生无偿的开销来同步来自并发线程的访问,a) 你通常不需要,b) 由ConcurrentHashMap 更有效地完成。您基本上不应该在新代码中使用Hashtable。
【讨论】: