首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 集合框架 List 詳解:定義、泛型陷阱與 ArrayList/LinkedList 選型指南

     編輯:Java 相關知識

List 核心特性

List 是有序集合,元素按插入順序排列(非自然排序),允許重複,支持索引訪問(0-based)。常用實現:ArrayList(動態數組)、LinkedList(雙向鏈表)。

泛型編譯警告陷阱

Eclipse 自動推導泛型,命令行編譯會報警:unchecked or unsafe operations。正確寫法:

List<Object> list = new ArrayList<Object>(); // 显式指定泛型

ArrayList 容量與 size 區別

List<Object> list = new ArrayList<Object>();
System.out.println(list.size()); // 輸出 0,而非初始容量 10

size() 返回元素個數,capacity 是底層數組長度。構造函數 ArrayList() 初始容量 10,但未添加元素時 size 為 0。

ArrayList vs LinkedList 性能選型

操作ArrayListLinkedList
隨機訪問(get/set)O(1) 快O(n) 需遍歷
頭尾插入刪除O(n) 需移動數組O(1) 僅修改引用
中間插入刪除O(n) 移動+擴容O(n) 遍歷定位+修改引用
內存開銷較小(連續數組)較大(節點對象+引用)

選型建議

  • 頻繁隨機訪問、尾部增刪 → ArrayList
  • 頻繁頭部/中間增刪、作為棟/隊列 → LinkedList

線程安全警示

兩者均非線程安全。多線程環境下需外部同步或使用 Collections.synchronizedList()、CopyOnWriteArrayList、或並發包下的實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved