Java容器(List、Set、Map)知识点快速复习手册(下)
2020-12-17 16:34
标签:前言 出现 回顾 between 映射 收集 oid com public 本文快速回顾了Java中容器的知识点,用作面试复习,事半功倍。 上篇:容器概览,容器中用到的设计模式,List源码 中篇:Map源码 下篇:Set源码,容器总结 http://wiki.jikexueyuan.com/project/java-collection/hashset.html https://segmentfault.com/a/1190000014391402 默认容量16,扩容两倍,加载因子0.75 允许元素为null 实现Set接口 不保证迭代顺序 非同步 初始容量非常影响迭代性能 public HashSet() {map = new HashMap();} 如果添加的是在 HashSet 中不存在的,则返回 true;如果添加的元素已经存在,返回 false。 对于 HashSet 中保存的对象,请注意正确重写其 equals 和 hashCode 方法,以保证放入的对象的唯一性。 HashSet 和 HashMap 的区别 重要: HashMap中使用键对象来计算hashcode值 HashSet: 无序,允许为null,底层是HashMap(散列表+红黑树),非线程同步 有序,不允许为null,底层是TreeMap(红黑树),非线程同步 WeakHashMap 的 Entry 继承自 WeakReference,被 WeakReference 关联的对象在下一次垃圾回收时会被回收。 WeakHashMap 主要用来实现缓存,通过使用 WeakHashMap 来引用缓存对象,由 JVM 对这部分缓存进行回收。 Tomcat 中的 ConcurrentCache 使用了 WeakHashMap 来实现缓存功能。 ConcurrentCache 采取的是分代缓存: Iterator替代了Enumeration,Enumeration是一个旧的迭代器了。 与Enumeration相比,Iterator更加安全,因为当一个集合正在被遍历的时候,它会阻止其它线程去修改集合。 区别有三点: 如果是单列的集合,我们考虑用Collection下的子接口ArrayList和Set。 如果是映射,我们就考虑使用Map 是否需要同步:去找线程安全的集合类使用 迭代时是否需要有序(插入顺序有序):去找Linked双向列表结构的 是否需要排序(自然顺序或者手动排序):去找Tree红黑树类型的(JDK1.8) 估算存放集合的数据量有多大,无论是List还是Map,它们实现动态增长,都是有性能消耗的。在初始集合的时候给出一个合理的容量会减少动态增长时的消耗 使用泛型,避免在运行时出现ClassCastException 本人目前为后台开发工程师,主要关注Python爬虫,后台开发等相关技术。 Csdn http://blog.csdn.net/qqxx6661 拥有专栏:Leetcode题解(Java/Python)、爬虫开发 知乎 https://www.zhihu.com/people/yang-zhen-dong-1/ 拥有专栏:码农面试助攻手册 掘金 https://juejin.im/user/5b48015ce51d45191462ba55 简书 https://www.jianshu.com/u/b5f225ca2376 Java容器(List、Set、Map)知识点快速复习手册(下) 标签:前言 出现 回顾 between 映射 收集 oid com public 原文地址:https://blog.51cto.com/15047490/2561276其它知识点复习手册
HashSet
关键词:
在这里插入图片描述TreeSet
关键词
LinkedHashSet
关键词
初始容量与迭代无关(与LinkedHashMap相同),因为LinkedHashSet迭代的是双向链表总结Set
TreeSet:
LinkedHashSet:WeekHashMap
存储结构
1private static class Entry
ConcurrentCache
1public final class ConcurrentCache
常见问题总结
Enumeration和Iterator接口的区别
ListIterator有什么特点
在这里插入图片描述
与Java集合框架相关的有哪些最好的实践
参考
关注我
原创博客主要内容
同步更新以下博客
个人公众号:Rude3Knife
文章标题:Java容器(List、Set、Map)知识点快速复习手册(下)
文章链接:http://soscw.com/index.php/essay/36889.html