auto commit
|
@ -26,7 +26,7 @@
|
|||
|
||||
## Collection
|
||||
|
||||
<div align="center"> <img src="pics/VP6n3i8W48Ptde8NQ9_0eSR5eOD6uqx.png"/> </div><br>
|
||||
<div align="center"> <img src="pics/938fc386-0340-47b5-aeaa-6993e3bb4fc0.png"/> </div><br>
|
||||
|
||||
### 1. Set
|
||||
|
||||
|
@ -52,7 +52,7 @@
|
|||
|
||||
## Map
|
||||
|
||||
<div align="center"> <img src="pics/SoWkIImgAStDuUBAp2j9BKfBJ4vLy4q.png"/> </div><br>
|
||||
<div align="center"> <img src="pics/c26e7ce3-dd9e-47e2-a208-367b5b2cddf6.png"/> </div><br>
|
||||
|
||||
- TreeMap:基于红黑树实现。
|
||||
|
||||
|
@ -67,7 +67,7 @@
|
|||
|
||||
## 迭代器模式
|
||||
|
||||
<div align="center"> <img src="pics/SoWkIImgAStDuUBAp2j9BKfBJ4vLy0G.png"/> </div><br>
|
||||
<div align="center"> <img src="pics/20e61b68-effe-4a70-a7fd-58be23f9343a.png"/> </div><br>
|
||||
|
||||
Collection 继承了 Iterable 接口,其中的 iterator() 方法能够产生一个 Iterator 对象,通过这个对象就可以迭代遍历 Collection 中的元素。
|
||||
|
||||
|
@ -112,6 +112,7 @@ List list = Arrays.asList(1, 2, 3);
|
|||
|
||||
## ArrayList
|
||||
|
||||
|
||||
### 1. 概览
|
||||
|
||||
实现了 RandomAccess 接口,因此支持随机访问。这是理所当然的,因为 ArrayList 是基于数组实现的。
|
||||
|
@ -127,6 +128,9 @@ public class ArrayList<E> extends AbstractList<E>
|
|||
private static final int DEFAULT_CAPACITY = 10;
|
||||
```
|
||||
|
||||
<div align="center"> <img src="pics/7935be3d-c2b3-4213-90c9-1e68ec4ac4e7.png"/> </div><br>
|
||||
|
||||
|
||||
### 2. 扩容
|
||||
|
||||
添加元素时使用 ensureCapacityInternal() 方法来保证容量足够,如果不够时,需要使用 grow() 方法进行扩容,新容量的大小为 `oldCapacity + (oldCapacity >> 1)`,也就是旧容量的 1.5 倍。
|
||||
|
@ -388,7 +392,7 @@ transient Node<E> first;
|
|||
transient Node<E> last;
|
||||
```
|
||||
|
||||
<div align="center"> <img src="pics/49495c95-52e5-4c9a-b27b-92cf235ff5ec.png" width="500"/> </div><br>
|
||||
<div align="center"> <img src="pics/09184175-9bf2-40ff-8a68-3b467c77216a.png"/> </div><br>
|
||||
|
||||
### 2. 与 ArrayList 的比较
|
||||
|
||||
|
@ -410,7 +414,7 @@ transient Entry[] table;
|
|||
|
||||
Entry 存储着键值对。它包含了四个字段,从 next 字段我们可以看出 Entry 是一个链表。即数组中的每个位置被当成一个桶,一个桶存放一个链表。HashMap 使用拉链法来解决冲突,同一个链表中存放哈希值相同的 Entry。
|
||||
|
||||
<div align="center"> <img src="pics/8fe838e3-ef77-4f63-bf45-417b6bc5c6bb.png" width="600"/> </div><br>
|
||||
<div align="center"> <img src="pics/1d2719d5-8d60-4c9b-a4ad-b2df7c7615af.jpg"/> </div><br>
|
||||
|
||||
```java
|
||||
static class Entry<K,V> implements Map.Entry<K,V> {
|
||||
|
@ -486,7 +490,7 @@ map.put("K3", "V3");
|
|||
- 计算键值对所在的桶;
|
||||
- 在链表上顺序查找,时间复杂度显然和链表的长度成正比。
|
||||
|
||||
<div align="center"> <img src="pics/49d6de7b-0d0d-425c-9e49-a1559dc23b10.png" width="600"/> </div><br>
|
||||
<div align="center"> <img src="pics/cf779e26-0382-4495-8463-f1e19e2e38a0.jpg"/> </div><br>
|
||||
|
||||
### 3. put 操作
|
||||
|
||||
|
@ -822,7 +826,7 @@ final Segment<K,V>[] segments;
|
|||
static final int DEFAULT_CONCURRENCY_LEVEL = 16;
|
||||
```
|
||||
|
||||
<div align="center"> <img src="pics/3fdfc89d-719e-4d93-b518-29fa612b3b18.png"/> </div><br>
|
||||
<div align="center"> <img src="pics/deb18bdb-b3b3-4660-b778-b0823a48db12.jpg"/> </div><br>
|
||||
|
||||
### 2. size 操作
|
||||
|
||||
|
|
BIN
docs/notes/pics/09184175-9bf2-40ff-8a68-3b467c77216a.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
docs/notes/pics/1d2719d5-8d60-4c9b-a4ad-b2df7c7615af.jpg
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/notes/pics/20e61b68-effe-4a70-a7fd-58be23f9343a.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
docs/notes/pics/7935be3d-c2b3-4213-90c9-1e68ec4ac4e7.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
docs/notes/pics/938fc386-0340-47b5-aeaa-6993e3bb4fc0.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/notes/pics/c26e7ce3-dd9e-47e2-a208-367b5b2cddf6.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
docs/notes/pics/cf779e26-0382-4495-8463-f1e19e2e38a0.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
docs/notes/pics/deb18bdb-b3b3-4660-b778-b0823a48db12.jpg
Normal file
After Width: | Height: | Size: 46 KiB |
|
@ -80,6 +80,8 @@
|
|||
<!-- GFM-TOC -->
|
||||
|
||||
|
||||
部分绘图文件可以在这里免费下载:[剑指 Offer](https://www.processon.com/view/5a3e4c7be4b0909c1aa18b49),后续会慢慢把所有题目都配上 GIF 演示图。
|
||||
|
||||
# 3. 数组中重复的数字
|
||||
|
||||
[NowCoder](https://www.nowcoder.com/practice/623a5ac0ea5b4e5f95552655361ae0a8?tpId=13&tqId=11203&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking)
|
||||
|
|
BIN
docs/pics/09184175-9bf2-40ff-8a68-3b467c77216a.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
docs/pics/1d2719d5-8d60-4c9b-a4ad-b2df7c7615af.jpg
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/pics/20e61b68-effe-4a70-a7fd-58be23f9343a.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
docs/pics/7935be3d-c2b3-4213-90c9-1e68ec4ac4e7.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
docs/pics/938fc386-0340-47b5-aeaa-6993e3bb4fc0.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/pics/c26e7ce3-dd9e-47e2-a208-367b5b2cddf6.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
docs/pics/cf779e26-0382-4495-8463-f1e19e2e38a0.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
docs/pics/deb18bdb-b3b3-4660-b778-b0823a48db12.jpg
Normal file
After Width: | Height: | Size: 46 KiB |