Skip to content

Commit 9ad273a

Browse files
authored
Update ArrayList.md
1 parent ae4f2ac commit 9ad273a

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

Java相关/ArrayList.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11

22
<!-- MarkdownTOC -->
33

4-
- [ArrayList简介](#ArrayList简介)
5-
- [ArrayList核心源码](#ArrayList核心源码)
6-
- [ArrayList源码分析](#ArrayList源码分析)
4+
- [ArrayList简介](#arraylist简介)
5+
- [ArrayList核心源码](#arraylist核心源码)
6+
- [ArrayList源码分析](#arraylist源码分析)
77
- [System.arraycopy\(\)和Arrays.copyOf\(\)方法](#systemarraycopy和arrayscopyof方法)
8-
- [两者联系与区别](#两者联系与区别)
9-
- [ArrayList核心扩容技术](#ArrayList核心扩容技术)
8+
- [两者联系与区别](#两者联系与区别)
9+
- [ArrayList核心扩容技术](#arraylist核心扩容技术)
1010
- [内部类](#内部类)
11-
- [ArrayList经典Demo](#ArrayList经典demo)
11+
- [ArrayList经典Demo](#arraylist经典demo)
1212

1313
<!-- /MarkdownTOC -->
1414

1515

16-
### <font face="楷体" id="3"> ArrayList简介</font>
16+
### <font face="楷体" id="3">ArrayList简介</font>
1717
  ArrayList 的底层是数组队列,相当于<font color="red">动态数组</font>。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用<font color="red">ensureCapacity </font>操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。它继承于**AbstractList**,实现了**List**, **RandomAccess**, **Cloneable**, **java.io.Serializable**这些接口。
1818
  在我们学数据结构的时候就知道了线性表的顺序存储,插入删除元素的时间复杂度为**O(n)**,求表长以及增加元素,取第 i 元素的时间复杂度为**O(1)**
1919
  ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
2020
  ArrayList 实现了**RandmoAccess接口**,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供**快速访问功能**的。在ArrayList中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。
2121
  ArrayList 实现了**Cloneable接口**,即覆盖了函数clone(),**能被克隆**
2222
  ArrayList 实现**java.io.Serializable接口**,这意味着ArrayList**支持序列化****能通过序列化去传输**
2323
  和Vector不同,**ArrayList中的操作不是线程安全的**!所以,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOnWriteArrayList。
24-
### <font face="楷体" id="4"> ArrayList核心源码</font>
24+
### <font face="楷体" id="4">ArrayList核心源码</font>
2525
```java
2626
package java.util;
2727

@@ -557,7 +557,7 @@ public class ArrayList<E> extends AbstractList<E>
557557
return Arrays.copyOf(elementData, size);
558558
}
559559
```
560-
##### 两者联系与区别
560+
##### 两者联系与区别
561561
**联系:**
562562
看两者源代码可以发现<font color="red">copyOf()</font>内部调用了<font color="red">System.arraycopy()</font>方法
563563
**区别:**

0 commit comments

Comments
 (0)