auto commit

This commit is contained in:
CyC2018 2019-10-18 01:56:31 +08:00
parent 2ea73a3ede
commit 63fc93fb52
2 changed files with 8 additions and 8 deletions

View File

@ -759,7 +759,7 @@ void transfer(Entry[] newTable) {
### 6. 扩容-重新计算桶下标
在进行扩容时需要把键值对重新放到对应的桶上HashMap 使用了一个特殊的机制可以降低重新计算桶下标的操作
在进行扩容时需要把键值对重新计算桶下标从而放到对应的桶上在前面提到HashMap 使用 hash%capacity 来确定桶下标HashMap capacity 2 n 次方这一特点能够极大降低重新计算桶下标操作的复杂度
假设原数组长度 capacity 16扩容之后 new capacity 32
@ -768,10 +768,10 @@ capacity : 00010000
new capacity : 00100000
```
对于一个 Key
对于一个 Key它的哈希值 hash 在第 5
- 它的哈希值如果在第 5 位上为 0那么取模得到的结果和之前一样
- 如果为 1那么得到的结果为原来的结果 +16
- 0那么 hash%00010000 = hash%00100000桶位置和原来一致
- 1hash%00010000 = hash%00100000 + 16桶位置是原位置 + 16
### 7. 计算数组容量

View File

@ -759,7 +759,7 @@ void transfer(Entry[] newTable) {
### 6. 扩容-重新计算桶下标
在进行扩容时需要把键值对重新放到对应的桶上HashMap 使用了一个特殊的机制可以降低重新计算桶下标的操作
在进行扩容时需要把键值对重新计算桶下标从而放到对应的桶上在前面提到HashMap 使用 hash%capacity 来确定桶下标HashMap capacity 2 n 次方这一特点能够极大降低重新计算桶下标操作的复杂度
假设原数组长度 capacity 16扩容之后 new capacity 32
@ -768,10 +768,10 @@ capacity : 00010000
new capacity : 00100000
```
对于一个 Key
对于一个 Key它的哈希值 hash 在第 5
- 它的哈希值如果在第 5 位上为 0那么取模得到的结果和之前一样
- 如果为 1那么得到的结果为原来的结果 +16
- 0那么 hash%00010000 = hash%00100000桶位置和原来一致
- 1hash%00010000 = hash%00100000 + 16桶位置是原位置 + 16
### 7. 计算数组容量