关于Map集合的两个面试题

HashMap和Hashtable的区别?

Hashtable对于有些人可能会有点面生。Hashtable是JDK 1.0就已经出现的,细心的人可能会发现Hashtable这是一个不规范的命名方式,理论上来说应该写成HashTable的。但是首先声明一点Hashtable就是正确的写法,这是为数不多的不规范命名的类,原因是因为出现的比较早,命名格式还不是很统一,但因为被广泛应用,所以后来就没办法改回来。在有的资料中可能会出线HashTable这种写法,注意不要被误导了。

Hashtable实现了一个哈希表,它将键映射到值。 任何非null对象都可以用作键值或值。这一点上跟HashMap很相似,不同的是HashMap是允许null对象作为键或者值的,只不过是基本上不会这么使用。HashMap是不同步的,而Hashtable是同步的。

  线程安全 键为null 值为null 同步 效率
HashMap 不安全 允许 允许 不同步
Hashtable 安全 不允许 不允许 同步

List、Set、Map等接口是否都是继承于Map接口

这个问题其实不难,List和Set都是继承于Collection接口,而Map本身就是一个顶层接口,所以他们都不是继承于Map接口。

发布了88 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/dai_ma_dong/article/details/103205349