WeakHashMap VS HashMap

WeakHashMap VS HashMap

WeakHashMap 中的 key 采用的是“弱引用”的方式,只要 WeakHashMap 中的 key 不再被外部引用,所对应的键值对就可以被垃圾回收器回收。 HashMap 中的 key 采用的是“强引用”的方式,当 key 不再被外部引用 时,只有当这个 key 从 HashMap 中删除后,才可以被垃圾回收器回收。

HashMap和TreeMap区别

1.实现方式的区别:
HashMap:基于哈希表实现。TreeMap:基于红黑树实现。
2.TreeMap能够把它保存的记录根据键排序.
3.HashMap:适用于在Map中插入、删除和查找元素。
Treemap:适用于按自然顺序或自定义顺序遍历键(key)。
HashMap通常比TreeMap快一点。

LinkedHashMap:可以保证 HashMap 集合有序。存入的顺序和取出的顺序一致

Hashset 的实现原理

对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,相关 HashSet 的 操作,基本上都是直接调用底层 HashMap 的相关方法来完成。HashSet 中的元素都存放在 HashMap 的 key 上面,而 value 中的值都是统一的一个 private static final Object PRESENT = new Object();

TreeSet

线程不安全,可以对 Set 集合中的元素进行排序。TreeSet 底层数据 结构是二叉树。

猜你喜欢

转载自blog.csdn.net/jcsyl_mshot/article/details/80200459