Date: 2025-05-21 20:21:32 author: lijianzhan
Java 集合框架提供了一組接口和類,以實現各種數據結構和算法。
以下是關于 Java 集合的核心內容說明:
/*** Java Collection Framework 說明:** 在 Java 中,集合(Collection) 是一個核心的編程概念,用于存儲、管理和操作一組對象。Java 集合框架(Java Collections Framework, JCF)提供了一套標準化的接口和類,使得開發者可以高效地處理數據集合(如列表、集合、隊列、映射等)* Java 集合框架基于接口設計的,并且分為了兩大類分別是Collection接口和Map接口** Collection 接口(說明:存儲單一元素)特點:* 下面三種接口是Collection接口的子接口* 1.List:* 1.有序排列* 2.允許重復* 3.如 ArrayList, LinkedList(ps:LinkedList類提供了雙向鏈接列表數據結構的實現)* 2.Set:* 1.無序排列* 2.不允許重復* 3.如 HashSet, TreeSet* 3.Queue:* 1.隊列* 2.先進先出(FIFO)* 3.如 LinkedList, PriorityQueue** Map 接口(說明:Map接口允許元素以鍵/值對(Key-Value)的形式存儲。鍵是唯一的名稱,可用于訪問map中的特定元素。而且,每個鍵都有一個與之關聯的值)特點:* 1.鍵唯一* 2.值可重復* 3.如 HashMap, TreeMap** */
- 在Java中,List接口是一個有序的集合,它允許我們按順序存儲和訪問元素:
為了使用List接口的功能,我們可以使用以下類:
1.數組列表(ArrayList類)
2.鏈表(LinkedList類)
3.向量(vector類)
4.堆棧(Stack類)
(1)List 接口的實現類
import java.util.ArrayList;
import java.util.List;class Main {public static void main(String[] args){/** ArrayList:* 1.基于動態數組實現* 2.線程不安全,適用于單線程環境* 3.可以包含重復的元素*/List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);System.out.println("List: " + list);//從列表中訪問元素int number = list.get(2);System.out.println("訪問元素: " + number);//使用indexOf()方法int index = list.indexOf(2);System.out.println("位置3的元素是 " + index);//從列表中刪除元素int removedNumber = list.remove(1);System.out.println("刪除元素: " + removedNumber);}
}
輸出結果示例:
(2)List 接口的實現類
import java.util.LinkedList;
import java.util.ListIterator;class Main {public static void main(String[] args){/** ArrayList:* 1.基于雙向鏈表實現* 2.實現了 Deque 接口,可用作隊列或棧* 3.可以包含重復的元素*///創建整數類型的鏈表LinkedList<Integer> linkedList = new LinkedList<>();linkedList.add(1);linkedList.add(2);System.out.println("LinkedList: " + linkedList);//從鏈表中獲取元素int number = linkedList.get(1);System.out.print("索引1處的元素: " + number);//創建字符串類型的鏈表LinkedList<String> linkedList2 = new LinkedList<>();//將元素添加到 LinkedList2linkedList2.add("Dog");linkedList2.add("Cat");linkedList2.add("Horse");System.out.println("linkedList2: " + linkedList2);//使用索引添加元素到 LinkedList2linkedList2.add(0,"Danger");linkedList2.add(1,"Monkey");linkedList2.add(2,"Duck");System.out.println("linkedList2: " + linkedList2);// 將一個鏈表添加到另一個鏈表,新建animals鏈表LinkedList<String> animals = new LinkedList<>();animals.add("Crocodile");//把 linkedList2 的所有元素都添加到 animals 上animals.addAll(linkedList2);System.out.println("Animals: " + animals);//創建ListIterator對象ListIterator<String> listIterate = animals.listIterator();listIterate.add("Dog");listIterate.add("Cat");System.out.println("listIterate: " + animals);// 使用iterator()方法 訪問元素while(listIterate.hasNext()) {System.out.print(listIterate.next());System.out.print(", ");}}
}
輸出結果示例:
- Set集合不能包含重復的元素:
為了使用Set接口的功能,我們可以使用以下類:
1.HashSet
2.LinkedHashSet
3.EnumSet
4.TreeSet
Set 接口的實現類:
(1)HashSet
import java.util.HashSet;
import java.util.Set;class Main {public static void main(String[] args){/** HashSet:* 1.基于哈希表實現,無序,插入/查詢時間復雜度為 O(1)* 2.依賴 hashCode() 和 equals() 方法判斷元素是否重復。*/// 創建setSet<Integer> setList = new HashSet<>();setList.add(10);// 重復元素會被忽略setList.add(10);System.out.println(setList);}
}
代碼運行結果:
(2)TreeSet
import java.util.TreeSet;class Main {public static void main(String[] args){/** TreeSet:* 1.基于紅黑樹實現,自然排序或自定義排序,插入/查詢時間復雜度為 O(log n)* 2.元素必須實現 Comparable 接口或傳入 Comparator*/// 創建TreeSetTreeSet<String> treeSet = new TreeSet<>();treeSet.add("Banana");treeSet.add("Apple"); // 自動按字母順序排序System.out.println(treeSet);}
}
代碼運行結果:
總結:Java 集合框架是處理數據的核心工具,能夠理解其接口和實現類的特性,掌握集合的使用可以高效的編程。