Map接口

Hashtable类和HashMap类

相同点:存储的内容都是键值对,key-value值,通过哈希表进行存储,内部冲突通过单链表解决。

不同点:

1、多线程安全问题:Hashtable是同步的,可以在多线程下安全的使用,不需要任何的操作;而HashMap是异步的,多线程下式不安全的,解决方式是Collections.synchronizedMap(Map m)方法,用这个方法返回一个同步的Map,实现多线程下的安全。

2、Hashtable中不允许出现null值,而在HashMap中null可以作为键,这样的键只有一个。

WeakHashMap类

对HashMap类的改进,如果key不被外部引用,就会被GC回收。

EnumMap类

枚举类型做的Map实现,使用EnumMap更加高效。

IdentityHashMap类

在所有的Map操作中key的值是不重复的,如果发生重复就一定会覆盖之前的内容,IdentityHashMap只要地址不重复就表示重复的key。

最近学习的速度有点慢,加油啊,小伙子!

原文地址:https://www.cnblogs.com/Optimism/p/10553023.html