auto commit
This commit is contained in:
parent
55985c8b5a
commit
e00519d06a
|
@ -646,7 +646,7 @@ final V remove(Object key, int hash, Object value) {
|
|||
}
|
||||
```
|
||||
|
||||
在以下链表中删除 C 节点,C 节点之后的所有节点都原样保留,C 节点之前的所有节点都没克隆到新的链表中,并且顺序被反转。可以注意到,在执行 remove 操作时,原始链表并没有被修改,也就是说,读线程不会受到执行 remove 操作的并发写线程的干扰。
|
||||
在以下链表中删除 C 节点,C 节点之后的所有节点都原样保留,C 节点之前的所有节点都被克隆到新的链表中,并且顺序被反转。可以注意到,在执行 remove 操作时,原始链表并没有被修改,也就是说,读线程不会受到执行 remove 操作的并发写线程的干扰。
|
||||
|
||||
<div align="center"> <img src="../pics//image007.jpg"/> </div><br>
|
||||
|
||||
|
|
|
@ -1537,13 +1537,14 @@ private void resize(int cap) {
|
|||
|
||||
### 1. 各种符号表实现的比较
|
||||
|
||||
<div align="center"> <img src="../pics//9ee83c8c-1165-476c-85a6-e6e434e5307a.jpg"/> </div><br>
|
||||
<div align="center"> <img src="../pics//b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png"/> </div><br>
|
||||
|
||||
应当优先考虑散列表,当需要有序性操作时使用红黑树。
|
||||
|
||||
### 2. Java 的符号表实现
|
||||
|
||||
Java 的 java.util.TreeMap 和 java.util.HashMap 分别是基于红黑树和拉链法的散列表的符号表实现。
|
||||
- java.util.TreeMap:红黑树
|
||||
- java.util.HashMap:拉链法的散列表
|
||||
|
||||
### 3. 集合类型
|
||||
|
||||
|
@ -1554,8 +1555,6 @@ Java 的 java.util.TreeMap 和 java.util.HashMap 分别是基于红黑树和拉
|
|||
当向量为稀疏向量时,可以使用符号表来存储向量中的非 0 索引和值,使得乘法运算只需要对那些非 0 元素进行即可。
|
||||
|
||||
```java
|
||||
import java.util.HashMap;
|
||||
|
||||
public class SparseVector {
|
||||
private HashMap<Integer, Double> hashMap;
|
||||
|
||||
|
@ -1581,3 +1580,4 @@ public class SparseVector {
|
|||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
|
BIN
pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png
Normal file
BIN
pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 111 KiB |
Loading…
Reference in New Issue
Block a user