diff --git a/notes/Java 容器.md b/notes/Java 容器.md index e433af5b..bb0a9265 100644 --- a/notes/Java 容器.md +++ b/notes/Java 容器.md @@ -646,7 +646,7 @@ final V remove(Object key, int hash, Object value) { } ``` -在以下链表中删除 C 节点,C 节点之后的所有节点都原样保留,C 节点之前的所有节点都没克隆到新的链表中,并且顺序被反转。可以注意到,在执行 remove 操作时,原始链表并没有被修改,也就是说,读线程不会受到执行 remove 操作的并发写线程的干扰。 +在以下链表中删除 C 节点,C 节点之后的所有节点都原样保留,C 节点之前的所有节点都被克隆到新的链表中,并且顺序被反转。可以注意到,在执行 remove 操作时,原始链表并没有被修改,也就是说,读线程不会受到执行 remove 操作的并发写线程的干扰。

diff --git a/notes/算法.md b/notes/算法.md index 7b1b1219..c55bbc2f 100644 --- a/notes/算法.md +++ b/notes/算法.md @@ -1537,13 +1537,14 @@ private void resize(int cap) { ### 1. 各种符号表实现的比较 -

+

应当优先考虑散列表,当需要有序性操作时使用红黑树。 ### 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 hashMap; @@ -1581,3 +1580,4 @@ public class SparseVector { } } ``` + diff --git a/pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png b/pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png new file mode 100644 index 00000000..2bb67d95 Binary files /dev/null and b/pics/b15ed62e-b955-44ac-b5cb-6fa7a16c79b5.png differ