Skip to content

Commit

Permalink
auto commit
Browse files Browse the repository at this point in the history
  • Loading branch information
CyC2018 committed Oct 17, 2019
1 parent 2ea73a3 commit 63fc93f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions docs/notes/Java 容器.md
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ void transfer(Entry[] newTable) {

### 6. 扩容-重新计算桶下标

在进行扩容时需要把键值对重新放到对应的桶上HashMap 使用了一个特殊的机制可以降低重新计算桶下标的操作
在进行扩容时需要把键值对重新计算桶下标从而放到对应的桶上在前面提到HashMap 使用 hash%capacity 来确定桶下标HashMap capacity 2 n 次方这一特点能够极大降低重新计算桶下标操作的复杂度

假设原数组长度 capacity 16扩容之后 new capacity 32

Expand All @@ -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. 计算数组容量

Expand Down
8 changes: 4 additions & 4 deletions notes/Java 容器.md
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ void transfer(Entry[] newTable) {

### 6. 扩容-重新计算桶下标

在进行扩容时需要把键值对重新放到对应的桶上HashMap 使用了一个特殊的机制可以降低重新计算桶下标的操作
在进行扩容时需要把键值对重新计算桶下标从而放到对应的桶上在前面提到HashMap 使用 hash%capacity 来确定桶下标HashMap capacity 2 n 次方这一特点能够极大降低重新计算桶下标操作的复杂度

假设原数组长度 capacity 16扩容之后 new capacity 32

Expand All @@ -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. 计算数组容量

Expand Down

0 comments on commit 63fc93f

Please sign in to comment.