Java進階學習之集合與泛型(1)
阿新 • • 發佈:2020-12-08
[TOC](目錄)
## 1.集合
#### 1.1.集合是什麼
之前的基礎篇中我們知道了一種資料結構:陣列,可以存放很多資料。但是資料有很大的侷限性:
- 支援的資料型別單一
- 宣告時需要指定大小,大小固定,可擴充套件性差
- 連續的儲存單元,對記憶體要求苛刻
那麼是否有其他的資料結構或者資料型別用於儲存資料以解決陣列的侷限性呢,集合框架就是如此,也稱為容器。
#### 1.2.集合框架結構
集合型別可分為Collection和Map。
##### 1.2.1.Collection
Collection的結構圖如下:複雜繼承和介面實現
![](https://img2020.cnblogs.com/blog/1464294/202012/1464294-20201208112328828-671001794.png)
| | 介面名 | 描述與作用 | |
| ---- | ---------- | ------------------------------------------------------------ | ---- |
| | Iterator | 迭代器,之前在說增強for迴圈中有提到過迭代器,是Collection的父介面 | |
| | Collection | 是List、Set和Queue的父介面,儲存一組不唯一、無序的物件,一般使用其子介面實現類進行操作資料 | |
| | List | 可通過索引獲取物件,儲存一組不唯一、有序的物件 | |
| | Set | 儲存一組唯一、無序的物件 | |
| | Queue | 佇列介面 | |
##### 1.2.2.Map
Map地結構圖如下:
![](https://img2020.cnblogs.com/blog/1464294/202012/1464294-20201208112420394-639571974.png)
| | 介面名 | 描述與作用 | |
| ---- | ------ | --------------------------- | ---- |
| | Map | 儲存key-value的一組鍵值物件 | |
#### 1.3.集合介面實現類
接下我會選出常用的實現類進行解析。
##### 1.3.1.LinkedList
實現了List介面和Queue介面,即儲存一組不唯一、允許null,有序的物件,並且也可作為佇列使用。採用連結串列結構進行實現,便於集合的插入和刪除元素,訪問元素相對較慢。由於其實現方法沒有synchronized關鍵字修飾,所以是執行緒不安全的。
例1(正常):
```java
public class TestLinkedList1 {
public static void main(String[] args) {
List