Java基礎複習筆記--集合知識總結之Collection下的List

一、List接口

1.Collection接口是List和Set接口的父類

Collection接口

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新加入的特性

  1. 集合是可以存任意類型的數據,表面上看功能非常強大
  2. 存的時候很方便,取的時候困難重重 從集合中取數據時不知道該轉換爲什麼類型,這叫類型安全問題
  3. 解決辦法就是:讓集合可以存任意類型的數據,但是隻能存同一種
  4. 這就叫泛型
  5. 一個集合一旦指定了泛型,那麼該集合就只能存同一種類型的數據,那麼取數據的時候,就不用強轉了
  6. 重要的事說三遍:泛型只支持引用數據類型,基本數據類型要使用它的包裝類!泛型只支持引用數據類型,基本數據類型要使用它的包裝類!泛型只支持引用數據類型,基本數據類型要使用它的包裝類!————因爲集合裏面存入的只能是對象!
  7. JDK7以後新增了一個菱形寫法
  8. 泛型的實現原理: 讓數據類型參數化
  9. Java中實現的泛型是僞泛型 ,就是JVM是不支持泛型的,只是在編譯的時候檢查一下類型是否一致,編譯通過會把
    字節碼中的泛型代碼全部刪掉(類型擦除)

linkedlist的意義

我們知道 ArrayList 是以數組實現的,遍歷時很快,但是插入、刪除時都需要移動後面的元素,效率略差些。而LinkedList 是以鏈表實現的,插入、刪除時只需要改變前後兩個節點指針指向即可,省事不少。

LinkedList的定義

LinkedList 是鏈表實現的線性表(雙鏈表)。


雙鏈表中的結點結構圖



LinkedList 特點

  • 雙向鏈表實現
  • 元素時有序的,輸出順序與輸入順序一致
  • 允許元素爲 null

  • 要找到某個結點,必須從頭開始遍歷。(查詢慢,增刪快
  • 和 ArrayList 一樣,不是同步容器


方法

其餘方法與arraylist一樣,只不過linkedlist多了6個鏈表相關的方法


由於linkedlist不是同步的,所以,想要線程安全的時候,需要直接在初始化時用 Collections.synchronizedList 方法進行包裝:


感謝大佬

https://blog.csdn.net/u011240877/article/details/52876543

https://blog.csdn.net/qq_34149805/article/details/68943004

https://blog.csdn.net/qq_36711757/article/details/80411721

https://blog.csdn.net/abc6368765/article/details/77509169

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章