JAVA集合知識點彙總 List集合
阿新 • • 發佈:2019-02-07
一、List介面
1.Collection介面是List和Set介面的父類
2.List 介面儲存一組允許重複,有序(插入順序)的物件,有下標,插入順序作為遍歷的順序
3.Set 介面儲存一組唯一,無序的物件 沒下標 插入的順序跟遍歷的順序是不一樣的
4.List介面中的功能方法
List 介面儲存一組允許重複,有序(插入順序)的物件(包括null),可以通過索引(下標)來進行訪問
作用 | 方法名 |
---|---|
儲存(新增) | |
boolean add(Object o) 繼承自Collection | |
void add (int index,Object o) 加塞兒專用 | |
替換 | |
com.afinalstone.set(int index,Object o) | |
刪除 | |
remove(Object o) 繼承自Collection | |
remove(int index) | |
void clear() 繼承自Collection | |
判斷 | |
boolean contains(Object o) 繼承自Collection,內部呼叫indexof實現 | |
boolean isEmpty() 繼承自Collection | |
int indexOf(Object o) | |
int lastIndexOf(Object o) | |
獲取 | |
int size() 繼承自Collection | |
Object get(int index) | |
Object[] toArray() 繼承自Collection |
二:List介面的三個常用實現類
類名 | 底層資料結構 | 執行緒是否安全 | 效率 | 增量值 |
---|---|---|---|---|
Vector | 動態的陣列結構 | 執行緒安全 | 無論增刪還是查詢都非常慢 | 預設初始容量為10,增量為10 |
ArrayList | 動態的陣列結構 | 執行緒不安全 | 增刪的效率很慢(因為要移動資料),但是隨機查詢的效率很高。 | 預設初始容量為10,增量未指定(經除錯發現:原容量的50%) |
LinkedList | 連結串列資料結構 | 執行緒不安全 | ,對元素的增刪的操作效率很高,隨機查詢的效率低(因為要移動指標定址) | 預設初始容量為0,增量不明確 |
三、泛型 泛型即(Generic type),是Java 5新加入的特性
- 集合是可以存任意型別的資料,表面上看功能非常強大
- 存的時候很方便,取的時候困難重重 從集合中取資料時不知道該轉換為什麼型別,這叫型別安全問題
- 解決辦法就是:讓集合可以存任意型別的資料,但是隻能存同一種
- 這就叫泛型
- 一個集合一旦指定了泛型,那麼該集合就只能存同一種類型的資料,那麼取資料的時候,就不用強轉了
- 泛型只支援引用資料型別,基本資料型別要使用它的包裝類
- JDK7以後新增了一個菱形寫法
- 泛型的實現原理: 讓資料型別引數化
- Java中實現的泛型是偽泛型 ,就是JVM是不支援泛型的,只是在編譯的時候檢查一下型別是否一致,編譯通過會把
位元組碼中的泛型程式碼全部刪掉(型別擦除)
專案地址:傳送門