【发布时间】:2011-06-17 07:46:37
【问题描述】:
我正在为软件面试做准备,但我被一个问题困扰了好几天。
我无法弄清楚 Java Collection API 中的linkedhashmap、map、hashtable、hashmap 之间的区别。
所有这些都具有相同的 get 和 put 复杂性吗?我知道地图是接口类 而hashmap、hashtable、linkedhashmap实现了这个接口。那么这是否意味着这 3 个类的内部实现是相同的呢?它们在 collections api 中是如何实现的?
提前致谢!!!
【问题讨论】:
-
使用LinkedHashMap,它基本上是一个链表它非常快速的搜索。 HashMap 是哈希表(基于树,pow2 桶大小)的糟糕实现,它在迭代时更差,在搜索时平庸。 Hashtable 是最古老的 impl。带一些同步。 IdentityHashMap 应该是哈希表 impl 应该是什么,可惜它仅适用于身份 (==) 和 identityHashcode
标签: java collections