【Java】Java容器篇(二),深入理解List集合類

小耿是個程式設計師發表於2020-11-06

【Java】Java容器篇(二),深入理解List集合類

建議整個系列一起看(更新中):
增強for: https://blog.csdn.net/qq_45495857/article/details/109410980
泛型:https://blog.csdn.net/qq_45495857/article/details/109410912
容器篇(一),巨集觀瞭解:https://blog.csdn.net/qq_45495857/article/details/109524162

在這裡插入圖片描述

List承諾可以將元素維護在特定的序列中,List介面在Collection的基礎上新增了大量的方法,使得可以在List的中間插入和移除元素

廢話不多說,直接開門見山:

1.List介面

繼承自Collection介面,在Java.util包下
特點:

  • 元素有序(存入和取出的順序一樣)
  • 有整數的索引
  • 元素可以重複

特有功能(都是按索引進行操作的):

  • void add(int index,E element):新增元素
  • E remove(int index):刪除元素
  • E set(int index,E element)修改元素
  • E get(int index): 獲取元素

2.ArrayList

  • 長於隨機訪問元素,但是在List的中間插入和移除元素時較慢,
  • 底層是陣列
  • ArrayList的Object陣列初始化長度為10,如果我們儲存滿了這個陣列,需要儲存第11個物件,就會定義新的長度更大的陣列,並將原陣列內容和新的元素一起加入到新陣列中,原始碼如下

在這裡插入圖片描述

3.LinkedList

  • 底層雙向連結串列結構
    在這裡插入圖片描述

  • 查詢快,增刪慢

  • 特性集較ArrayList更大

特有方法:

  • void addFirst(E e):將元素新增到開頭
  • void addLast(E e):將元素新增到末尾
  • E getFirst():獲取開頭元素
  • E getLast():獲取結尾元素
  • E removeFirst():刪除第一個元素,並返回刪除的元素
  • E removeLast():刪除最後一個元素,並返回刪除的元素

4.如何選擇使用哪種List集合(根據資料結構特點)

  1. 儘量避免使用Vector
  2. 查詢多,增刪少,用ArrayList
  3. 查詢少,增刪多,用LinkedList
  4. 預設用ArrayList
  5. CopyOnWriteArrayList是List的一個特殊實現,專門用於併發程式設計

5.List集合的遍歷

  • foreach
  • for
  • 迭代器

迭代器後面專門講


// 以上就是本篇List集合的內容,希望能夠幫助到大家

相關文章