Java集合架構包括各種資料結構,如List、Set、Map、Queue等,為資料的存儲和處理提供了強大的工具。本文将詳細介紹Java集合架構中的幾個關鍵類,并通過代碼示例展示如何在實際業務中使用它們。
ArrayList
ArrayList是一種基于動态數組實作的List。它提供了快速的随機通路能力。
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
System.out.println(list.get(1)); // 輸出: Python
}
}
LinkedList
LinkedList是一種基于雙向連結清單實作的List。它的插入、删除操作比ArrayList更高效。
import java.util.LinkedList;
import java.util.List;
public class LinkedListExample {
public static void main(String[] args) {
List<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.remove(1);
System.out.println(list); // 輸出: [Java, C++]
}
}
HashMap
HashMap是基于哈希表的Map實作,提供快速查找、插入和删除操作。
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("Java", 10);
map.put("Python", 20);
map.put("C++", 30);
System.out.println(map.get("Python")); // 輸出: 20
}
}
TreeSet
TreeSet是基于紅黑樹的Set實作,能保證元素有序。
import java.util.Set;
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
Set<String> set = new TreeSet<>();
set.add("Java");
set.add("Python");
set.add("C++");
System.out.println(set); // 輸出: [C++, Java, Python]
}
}
ConcurrentHashMap
ConcurrentHashMap是線程安全的HashMap,适用于多線程環境。
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapExample {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("Java", 10);
map.put("Python", 20);
map.put("C++", 30);
System.out.println(map.get("Java")); // 輸出: 10
}
}
Stack
Stack是後進先出(LIFO)的棧,适用于需遵循LIFO規則的場景。
import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("C++");
System.out.println(stack.pop()); // 輸出:
}
}
Queue
Queue是先進先出(FIFO)的隊列,适用于需遵循FIFO規則的場景。
import java.util.Queue;
import java.util.LinkedList;
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
queue.add("Java");
queue.add("Python");
queue.add("C++");
System.out.println(queue.poll()); // 輸出: Java
}
}
PriorityQueue
PriorityQueue是一種特殊的隊列,出隊順序是按照元素的優先級決定的。
import java.util.PriorityQueue;
public class PriorityQueueExample {
public static void main(String[] args) {
PriorityQueue<Integer> queue = new PriorityQueue<>();
queue.add(3);
queue.add(1);
queue.add(2);
System.out.println(queue.poll()); // 輸出: 1
}
}
以上隻是Java集合架構中的一部分,它還包含了其他許多有用的類,如 HashSet、LinkedHashMap、Vector 等。了解并掌握這些類,可以幫助你在實際的業務場景中選擇最合适的資料結構,進而編寫出高效和健壯的Java代碼。