![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
文章平均质量分 66
涛涛英语学不进去
Ctrl + C Ctrl + V AC !!! over .. next !!!
展开
-
集合深度学习10—同步类容器
Vector类和HashTablle是同步类容器,是在方法声明上添加synchronized关键字Colloections下的同步类容器是在方法体上包了一层mutex就是一个锁,就是这个同步类容器底层还是走的ArrayList的add方法,只是被封装成同步代码块。......原创 2022-08-29 21:36:56 · 796 阅读 · 0 评论 -
集合深度学习09—HashMap源码解析
装填因子设置为1:空间利用率得到了很大的满足,但很容易碰撞,产生链表-> 查询效率低,时间长装填因子设置为0.5:发生碰撞的概率低,扩容,产生链表的几率也低,查询效率高,但空间利用率低在时间和空间的开销中,取中间值。........................原创 2022-08-27 23:28:51 · 540 阅读 · 0 评论 -
集合深度学习08—Map
【代码】集合深度学习08—Map。原创 2022-08-24 21:57:03 · 315 阅读 · 0 评论 -
集合深度学习07—Set、HashSet、LinkedHashSet、TreeSet、 底层原理 & 源码解析
一旦指定外部比较器,那么就会按照外部比较器来比较。HashSet需要根据 hashCode 计算 哈希值,然后使用 equals 比较,放在底层数组中,处理哈希冲突的方法是链地址。系统提供的类型都重写了compare方法,如果自定义类型也想排序存储,需要重写compare比较器接口。其实就是在HashSet的基础上,多了一个总的链表,这个总链表将放入的元素串在一起,方便有序的遍历。没有哈希值,又不能比较,怎么做到无序,没法,所以自定义的类才不能。6.放入数组中的数据,是直接放的吗?1.数组的长度是多少。..原创 2022-08-24 17:23:40 · 302 阅读 · 0 评论 -
集合深度学习06—iterator 迭代器源码解析
iterator() 、 Iterator() 、Iterable 区别ArrayList类 —继承—>AbstractList抽象类—实现—>List接口—继承—>Collections接口—继承—>Iterable接口Iterable接口中有iterable抽象方法,返回类型是 Iterator接口,这个接口里有两个常用的方法 next和hasNextArrayList类中有个叫 Itr 内部类,实现了 Iterable接口,重写iterator方法,返回 Ire 对象。原创 2022-08-24 13:01:58 · 317 阅读 · 0 评论 -
集合深度学习05—LinkedList 底层原理 & 核心源码
重复的不再写为什么这么多相似方法呢?原创 2022-08-24 12:04:14 · 171 阅读 · 0 评论 -
集合深度学习04—Vector核心源码
因为其方法全是线程安全的,被淘汰了,在方法声明上加synchronized,而并不是所有的场景都要用线程安全。这一点和HashTable类被淘汰的原因一样。原创 2022-08-23 23:44:41 · 80 阅读 · 0 评论 -
集合深度学习03—ArrayList核心源码
JDK1.7时 底层是数组,在调用构造器的时候,数组长度初始化为10,扩容的时候为1.5倍。JDK1.8时 底层还是数组,在调用构造器的时候,底层数组为 { },空数组,在调用add方法后,底层数组才重新赋值为新数组,新数组的长度为10好处是节省内存,在add后才创建长度为10的数组。原创 2022-08-23 17:52:22 · 222 阅读 · 0 评论 -
集合深度学习02—List
重复的方法看父级扩展的方法都和索引相关。原创 2022-08-23 14:51:35 · 240 阅读 · 0 评论 -
集合深度学习01—Collection
为什么要学集合?有数组不就够了吗。所以要学集合。原创 2022-08-23 14:23:37 · 225 阅读 · 0 评论