Java集合-List介面
List是一個繼承於Collection的介面,即List是集合中的一種。List是有序的佇列,List中的每一個元素都有一個索引,而且支援重複。即:List集合:有序,支援索引,可重複的集合
List 介面的定義:
List 介面-常用方法
-
add(Object element) : 向列表的尾部新增指定的元素
-
size() :返回列表中的元素個數
-
get(int index): 返回列表中指定位置的元素,index從0開始
-
add(int index, Object element): 在列表的指定位置插入指定元素
-
set(int i, Object element)
-
clear(): 從列表中移除所有元素 .
-
isEmpty(): 判斷列表是否包含元素,不包含元素則返回 true,否則返回false
-
iterator(): 返回按適當順序在列表的元素上進行迭代的迭代器
-
contains(Object o): 如果列表包含指定的元素,則返回 true。
-
remove(int index): 移除列表中指定位置的元素,並返回被刪元素
-
remove(Object o): 移除集合中第一次出現的指定元素,移除成功返回true,否則返回false。
List 介面-遍歷方式
三種遍歷方式,前兩種同 Collection介面的遍歷方式(迭代器、增強for迴圈)
第三種是 普通for 迴圈: 直接使用索引遍歷
需要使用到方法 size() 和 get()。
List 介面-常用實現類
List介面的三個典型實現:
(1)ArrayList:底層資料結構是陣列,查詢快,增刪慢,執行緒不安全,效率高
文章連結:Java-ArrayList
(2)LinkedList 底層資料結構是連結串列,查詢慢,增刪快,執行緒不安全,效率高
文章連結:Java-LinkedList
(3)Vector:底層資料結構是陣列,查詢快,增刪慢,執行緒安全,效率低
文章連結:Java-Vector
它們的使用場景:
(1) 對於需要快速插入,刪除元素,應該使用LinkedList。
(2) 對於需要快速隨機訪問元素,應該使用ArrayList。
(3) 對於“單執行緒環境” 或者 “多執行緒環境,但List僅僅只會被單個執行緒操作”,此時應該使用非同步的類(如ArrayList)。
對於“多執行緒環境,且List可能同時被多個執行緒操作”,此時,應該使用同步的類(如Vector)。