Hashtable类、IdentityHashMap和WeakHashMap类

1、Hashtable

  • Hashtable类实现了一个哈希表,能够得到将键映射到值。任何非空对象都可以用作键或值。
  • 该实现类支持fail-fast机制。与新的集合实现不同,Hashtable是线程安全的。如果不需要线程安全的容器可以使用HashMap,如果需要多线程高并发可使用ConcurrentHashMap

2、IdentityHashMap

  • IdentityHashMap不是一个通用的Map实现,虽然该类实现了Map接口,但是它故意违反了Map的约定。该约定要求在比较对象的时候使用equals方法,此类仅适用于需要引用相等语义的极少数情况。
  • HashMapIdentityHashMap也是无序的,并且该类不是线程安全的,如果要使之线程安全,可以调用Collections.synchronizedMap(new IdentityHashMap(...))来实现。该类支持fail-fast机制。

3、WeakHashMap

  • WeakHashMap类基于哈希表的Map基础实现,带有弱键。WeakHashMap中的entry当不再使用时还会自动移除。更准确说,给定key的映射的存在将不会阻止key被垃圾收集器丢弃。
  • 基于map接口是一种弱键相连,WeakHashMap里面的键会自动回收。
  • 支持null值和null键,fast-fail机制,不允许重复,WeakHashMap经常用作缓存。
posted @ 2021-02-19 22:37  Eleanor123  阅读(94)  评论(0编辑  收藏  举报