Java基礎-List接口


List集合


1.1 list概述

  1. List接口繼承Collection接口,實現了List接口的類稱爲List集合。
  2. 在List集合中允許出現重複的元素,所有元素以線性方式進行存儲,可以通過索引來訪問集合中指定的元素。List集合的元素的存儲順序和取出順序一致。
  3. List不但繼承了Collection接口中的全部方法,還增加了一些根據元素位置索引來操作集合的特有方法。
  4. list集合主要分爲Arraylist、Linkedlist、Vector。

1.2 ArrayList集合和LinkedList集合的區別:

  1. ArrayList集合底層是數組,而且是Object [] 類型;而LinkedList集合底層是鏈表。

  2. ArrayList集合查詢數據很快,但是增刪數據很慢;LinkedList集合增刪數據很快。但是查詢數據很慢。

1.3 List集合中常用方法:

  1. add(Object object):向集合中添加數據

  2. get(int index):獲取集合中指定的索引位置的元素數值

  3. size():獲取集合的長度

  4. isEmpty():判斷集合是否爲空

  5. contains(Object object):判斷結合中是否含有指定的這個元素

  6. set(int index, Object object):更改集合中指定索引位置的元素數值

  7. toArray():將集合轉換爲數組

  8. remove(int index):刪除集合中指定索引位置的元素數值

  9. clear():清空集合元素數值,謹慎使用

1.4 ArrayList集合

  1. (1)ArrayList是List接口的一個實現類,它是程序中最常見的一種集合類;

  2. (2)在ArrayList內部封裝了一個數組對象,初始長度缺省爲10,當存入的元素超過數組長度時,ArrayList會在內存中分配一個更大的數組來重新容納這些元素,因此可以將ArrayList集合看作一個長度可變的數組;

  3. (3)ArrayList集合類的大部分方法都是從父類Collection和List繼承過來的,其中add()方法和get()方法用於實現元素的添加和讀取。

  4. (4)ArrayList集合的內部使用一個數組來保存元素。在刪除元素時,會將被刪除元素之後的元素都向前移一個位置以填補空位;而在用add(int index, Object element)方法添加元素時,是把元素插入index指向的位置,先把該位置的元素以及後續元素都向後移一個位置,如果超出數組的容量,會創建更大的新數組。因爲增刪元素會導致大量的內存操作,所以效率低,但ArrayList集合允許通過索引隨機的訪問元素,查詢效率高。

  5. (5)集合和數組一樣,索引的取值範圍是從0開始,到size-1爲止(size是集合的長度),不能超出此範圍,否則會引發異常。add(Objecto)方法是把元素添加到集合的尾部,而add(int index, Object o)是把元素添加到由索引index指定的位置。

1.5 LinkedList集合

  1. (1)List接口的另一個實現類LinkedList,克服了ArrayList集合在增刪元素時效率較低的侷限性。但是LinkedList集合的查詢效率低(不支持隨機訪問),要查詢第n個元素,必須從第一個元素開始,逐一的向後遍歷,直到第n個元素。

  2. (2)該集合內部維護了一個雙向鏈表,鏈表中的每個元素都通過對象引用來記住它的前一個元素和後一個元素,從而將所有的元素彼此連接起來。

  3. (3)當插入一個新元素時,只需要修改元素之間的引用關係即可,刪除一個節點也是如此。

  4. *(4)linkedList 底層採用的不是單向鏈表,而是雙向循環列表。

1.6 Vector

實現了一個list接口,表示一個可變的對象數組,主要用於多線程環境下。

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