p533 集合set接口
集合框架图
1.无序性 2.不可重复性
添加元素过程
p541 复习集合 collection
遍历
1.迭代器
2.增强for
3.java8遍历
p542 集合复习 List接口
扩容源码分析:
arrayList源码
LinkedList源码
vector
p543 set接口
p546 map集合
底层实现原理
jdk7
初始化源码:
添加元素:
放入元素时,将要添加的元素放入当数组位置,把之前该位置的元素当作当前添加元素的next(单向链表)
jdk8
添加元素
第一次添加元素
不是第一次添加元素,并且算得的新元素应该放置的在数组的索引位置没有元素,直接在该索引中放入第一个元素
不是第一次添加元素,并且该数组索引上已经有了一个或多个元素,要进行更多判断
p为索引中的第一个元素
链表转换为树的逻辑
LinkedHashMap相对与map来说节点元素node多了两个属性,记录元素的上一个和下一个,能按添加顺序展示
map常用方法
遍历
treemap
p415 多线程
常用方法
线程优先级
p428 线程的生命周期
解决线程安全问题
同步代码块 同步方法
lock锁
synchronized与lock 二者比较
sleep和wait方法
创建线程的第三种方式