一、Collection基礎概念
Collection是Java中的集合類,是Java編程中經常使用的一個類。Collection Framework提供了一套介面和類,用於存儲和操作對象的集合,可以將同一類型的對象存儲在集合中,實現更加靈活的操作。Collection Framework提供了三種類型的集合:Set,List和Map。
Collection介面是Set、List和Queue的基本介面,它定義了一些通用的方法:add()、remove()、contains()、isEmpty()等。Set元素是唯一的,List元素是按照索引排序的,Map元素由鍵值對組成。Collection Framework提供了多種實現Collection介面的類,例如LinkedList、ArrayList、HashSet、TreeSet等。
Java中還有一種Iterator介面,用於遍歷集合中的元素,它允許我們按照任意順序遍歷集合,而不需要關心集合的底層實現。
二、List詳解
Java中的List是一種有序的集合,可以包含重複元素。List中元素的索引是固定的,支持按照索引獲取元素、添加元素、刪除元素、修改元素等操作。常見的List實現類有ArrayList、LinkedList、Vector等,其中ArrayList和LinkedList是最常用的。
ArrayList是基於數組實現的,可以高效地在任意位置插入、刪除元素。但是需要保證數組的連續空間,因此ArrayList在頻繁插入、刪除元素時,性能會降低。
LinkedList是基於雙向鏈表實現的,它在插入、刪除元素時性能較好,但是在隨機訪問元素時性能較差。
三、Set詳解
Set是一種不允許重複元素的集合,常見的實現類有HashSet、TreeSet等。HashSet是基於哈希表實現的,可以高效地添加、刪除元素,但是元素的順序是不確定的。TreeSet是基於TreeMap實現的,可以保證元素的有序性。
四、Map詳解
Map是一種鍵值對形式的集合,每個元素實際上是一個key-value對。Map中key是唯一的,可以用key來獲取對應的value。常見的實現類有HashMap、TreeMap等。HashMap是基於哈希表實現的,可以高效地添加、刪除元素;而TreeMap基於紅黑樹實現,可以保證元素的有序性。
五、代碼示例
1. List示例:
// ArrayList示例 List<String> arrayList = new ArrayList<>(); arrayList.add("apple"); arrayList.add("banana"); arrayList.add("orange"); System.out.println(arrayList.get(0)); // 輸出結果為"apple" // LinkedList示例 List<String> linkedList = new LinkedList<>(); linkedList.add("apple"); linkedList.add("banana"); linkedList.add("orange"); System.out.println(linkedList.get(0)); // 輸出結果為"apple"
2. Set示例:
// HashSet示例 Set<String> hashSet = new HashSet<>(); hashSet.add("apple"); hashSet.add("banana"); hashSet.add("orange"); System.out.println(hashSet.size()); // 輸出結果為3 // TreeSet示例 Set<String> treeSet = new TreeSet<>(); treeSet.add("apple"); treeSet.add("banana"); treeSet.add("orange"); System.out.println(treeSet.size()); // 輸出結果為3
3. Map示例:
// HashMap示例 Map<String, Integer> hashMap = new HashMap<>(); hashMap.put("apple", 1); hashMap.put("banana", 2); hashMap.put("orange", 3); System.out.println(hashMap.get("apple")); // 輸出結果為1 // TreeMap示例 Map<String, Integer> treeMap = new TreeMap<>(); treeMap.put("apple", 1); treeMap.put("banana", 2); treeMap.put("orange", 3); System.out.println(treeMap.get("apple")); // 輸出結果為1
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189421.html