Java常用數據結構入門
前言
數據結構是程序設計中的基礎,掌握常用數據結構能幫助你更高效地解決問題。本文面向Java初學者,介紹Java中常用的數據結構及其基本使用方法。
1. 數組 (Array)
數組是最基礎的數據結構,可以存儲固定大小的同類型元素。
定義與使用:
int[] arr = new int[5]; // 創建長度為5的整型數組
arr[0] = 10; // 賦值
System.out.println(arr[0]); // 輸出第一個元素
特點:
- 長度固定,不能動態擴容
- 訪問速度快,適合存儲和遍歷
2. ArrayList
ArrayList是Java集合框架中最常用的動態數組實現,可以動態擴容,適合存儲不固定長度的數據。
定義與使用:
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list.get(0)); // 輸出 "Java"
常用方法:
add()
添加元素get()
獲取元素remove()
移除元素size()
獲取長度
3. LinkedList
LinkedList是鏈表結構,插入和刪除操作效率高,適合頻繁增刪元素的場景。
定義與使用:
import java.util.LinkedList;
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.remove(0); // 移除第一個元素
特點:
- 插入/刪除快
- 隨機訪問慢
4. HashMap
HashMap是常用的鍵值對映射結構,用于存儲映射關系。
定義與使用:
import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
System.out.println(map.get("Java")); // 輸出 1
常用方法:
put()
添加鍵值對get()
獲取值remove()
移除鍵值對containsKey()
判斷是否包含某個鍵
5. HashSet
HashSet用于存儲不重復的元素集合。
定義與使用:
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java"); // 不會重復添加
System.out.println(set.size()); // 輸出 2
特點:
- 元素不重復
- 無序存儲
6. 棧 (Stack)
棧是一種后進先出(LIFO)的數據結構,可以用Stack
類或Deque
接口實現。
定義與使用:
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
stack.push(1); // 壓棧
stack.push(2);
System.out.println(stack.pop()); // 出棧,輸出2
7. 隊列 (Queue)
隊列是一種先進先出(FIFO)結構,常用LinkedList
或ArrayDeque
實現。
定義與使用:
import java.util.LinkedList;
import java.util.Queue;
Queue<String> queue = new LinkedList<>();
queue.offer("Java");
queue.offer("Python");
System.out.println(queue.poll()); // 輸出并移除 "Java"
總結
Java集合框架為我們提供了豐富的數據結構選擇。作為初學者,建議重點掌握上述幾種數據結構的基本用法和特點。多加練習,結合實際場景選擇合適的數據結構,會讓你的編程能力大幅提升。
推薦學習路徑:
- 了解每種數據結構的特點和適用場景
- 編寫代碼練習基本操作
- 閱讀Java官方文檔和相關書籍
參考資料:
- Java官方文檔 - Collections Framework
- 《數據結構與算法Java版》