動手編寫—動態陣列(Java實現)
阿新 • • 發佈:2020-09-13
[TOC]
## 陣列基礎回顧
1、陣列是一種常見的資料結構,用來儲存同一型別值的集合
2、陣列就是儲存資料長度固定的容器,保證多個數據的資料型別要一致
3、陣列是一種順序儲存的線性表,所有元素的記憶體地址是連續的
4、例如:new 一個int基本型別的陣列array
+ ```java
int[] array = new int[]{11,22,33};
```
+ ![在這裡插入圖片描述](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/dcbfe1c525c546fea421d43b9b42ca6c~tplv-k3u1fbpfcp-zoom-1.image)
5、陣列的優勢與劣勢
+ 陣列具有很高的隨機訪問能力,通過陣列下標就可以讀取對應的值
+ 陣列在插入與刪除元素時,會導致大量的元素移動
+ 陣列的長度是固定的,無法動態擴容,在實際開發中,我們更希望陣列的容量是可以動態改變的
+ 總結——陣列適用於讀操作多,寫操作少的場景
## 自定義動態陣列
### 動態陣列的設計
```java
/**
* 元素的數量
*/
protected int size;
/**
* 陣列所有元素及記憶體地址指向
*/
private E[] elements;
```
圖示結構:
![在這裡插入圖片描述](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6301410643de4324bb8a059b29dfc942~tplv-k3u1fbpfcp-zoom-1.image)
### 抽象父類介面設計
將動態陣列與連結串列共同的屬性與方法抽取出,作為抽象類,提高複用性
**抽象父類介面——`List`**
```java
public interf