Skip to content

Commit 7381f7d

Browse files
committed
[docs add&fix]新增LinkedList 源码分析&回退搜索功能
1 parent 2eb3ba9 commit 7381f7d

File tree

9 files changed

+6116
-3710
lines changed

9 files changed

+6116
-3710
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
**源码分析**
7070

7171
- [ArrayList 源码+扩容机制分析](./docs/java/collection/arraylist-source-code.md)
72+
- [LinkedList 源码分析](./docs/java/collection/linkedlist-source-code.md)
7273
- [HashMap(JDK1.8)源码+底层数据结构分析](./docs/java/collection/hashmap-source-code.md)
7374
- [ConcurrentHashMap 源码+底层数据结构分析](./docs/java/collection/concurrent-hash-map-source-code.md)
7475

docs/.vuepress/config.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import { cut } from "nodejs-jieba";
21
import { defineUserConfig } from "vuepress";
3-
import { searchProPlugin } from "vuepress-plugin-search-pro";
4-
2+
import { searchPlugin } from "@vuepress/plugin-search";
53
import theme from "./theme.js";
64

75
export default defineUserConfig({
@@ -51,6 +49,20 @@ export default defineUserConfig({
5149
theme,
5250

5351
plugins: [
52+
searchPlugin({
53+
// https://v2.vuepress.vuejs.org/zh/reference/plugin/search.html
54+
// 排除首页
55+
isSearchable: (page) => page.path !== "/",
56+
maxSuggestions: 10,
57+
hotKeys: ["s", "/"],
58+
// 用于在页面的搜索索引中添加额外字段
59+
getExtraFields: () => [],
60+
locales: {
61+
"/": {
62+
placeholder: "搜索",
63+
},
64+
},
65+
}),
5466
// searchProPlugin({
5567
// indexContent: true,
5668
// indexOptions: {

docs/.vuepress/sidebar/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export default sidebar({
8585
collapsible: true,
8686
children: [
8787
"arraylist-source-code",
88+
"linkedlist-source-code",
8889
"hashmap-source-code",
8990
"concurrent-hash-map-source-code",
9091
],

docs/home.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ title: JavaGuide(Java学习&&面试指南)
6161
**源码分析**
6262

6363
- [ArrayList 源码+扩容机制分析](./java/collection/arraylist-source-code.md)
64+
- [LinkedList 源码分析](./java/collection/linkedlist-source-code.md)
6465
- [HashMap(JDK1.8)源码+底层数据结构分析](./java/collection/hashmap-source-code.md)
6566
- [ConcurrentHashMap 源码+底层数据结构分析](./java/collection/concurrent-hash-map-source-code.md)
6667

docs/java/collection/arraylist-source-code.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ tag:
99

1010
`ArrayList` 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用`ensureCapacity`操作来增加 `ArrayList` 实例的容量。这可以减少递增式再分配的数量。
1111

12-
`ArrayList`继承于 **`AbstractList`** ,实现了 **`List`**, **`RandomAccess`**, **`Cloneable`**, **`java.io.Serializable`** 这些接口。
12+
`ArrayList` 继承于 `AbstractList` ,实现了 `List`, `RandomAccess`, `Cloneable`, `java.io.Serializable` 这些接口。
1313

1414
```java
1515

@@ -19,9 +19,10 @@ public class ArrayList<E> extends AbstractList<E>
1919
}
2020
```
2121

22-
- `RandomAccess` 是一个标志接口,表明实现这个接口的 List 集合是支持**快速随机访问**的。在 `ArrayList` 中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。
23-
- `ArrayList` 实现了 **`Cloneable` 接口** ,即覆盖了函数`clone()`,能被克隆。
24-
- `ArrayList` 实现了 `java.io.Serializable`接口,这意味着`ArrayList`支持序列化,能通过序列化去传输。
22+
- `List` : 表明它是一个列表,支持添加、删除、查找等操作,并且可以通过下标进行访问。
23+
- `RandomAccess` :这是一个标志接口,表明实现这个接口的 `List` 集合是支持 **快速随机访问** 的。在 `ArrayList` 中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。
24+
- `Cloneable` :表明它具有拷贝能力,可以进行深拷贝或浅拷贝操作。
25+
- `Serializable` : 表明它可以进行序列化操作,也就是可以将对象转换为字节流进行持久化存储或网络传输,非常方便。
2526

2627
### ArrayList 和 Vector 的区别?(了解即可)
2728

@@ -59,6 +60,8 @@ System.out.println(listOfStrings);
5960

6061
## ArrayList 核心源码解读
6162

63+
这里以 JDK1.8为例,分析一下 `ArrayList` 的底层源码。
64+
6265
```java
6366
package java.util;
6467

0 commit comments

Comments
 (0)