Java集合框架提供了一組實(shí)用的接口和類(lèi),用于存儲(chǔ)和操作數(shù)據(jù)。其中包括列表、棧、隊(duì)列、集合、映射等多種數(shù)據(jù)結(jié)構(gòu)類(lèi)型。本文將結(jié)合具體實(shí)例,介紹這些類(lèi)型的特點(diǎn)和使用方法。
一、列表(List)
列表是一種有序的數(shù)據(jù)結(jié)構(gòu),其中的元素可以重復(fù)。Java中提供了多個(gè)實(shí)現(xiàn)列表接口的類(lèi),如ArrayList、LinkedList和Vector等。這里以ArrayList為例,演示其基本用法。
// 創(chuàng)建一個(gè)空列表List<String> list = new ArrayList<>(); // 添加元素 list.add("apple"); list.add("banana"); list.add("orange"); // 獲取元素 String first = list.get(0); System.out.println(first); // 輸出: apple // 刪除元素 list.remove(1); // 遍歷列表 for (String item : list) { System.out.println(item); }
二、棧(Stack)
棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),即最后入棧的元素最先彈出。Java中提供了Stack類(lèi)來(lái)實(shí)現(xiàn)棧結(jié)構(gòu)。下面是一個(gè)簡(jiǎn)單的例子:
// 創(chuàng)建一個(gè)棧Stack<Integer> stack = new Stack<>(); // 入棧 stack.push(1); stack.push(2); stack.push(3); // 出棧 int top = stack.pop(); System.out.println(top); // 輸出: 3 // 獲取棧頂元素 int peek = stack.peek(); System.out.println(peek); // 輸出: 2
三、隊(duì)列(Queue)
隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),即最先入隊(duì)列的元素最先出隊(duì)列。Java中提供了多個(gè)實(shí)現(xiàn)隊(duì)列接口的類(lèi),如LinkedList、ArrayDeque和PriorityQueue等。這里以LinkedList為例,演示其基本用法。
// 創(chuàng)建一個(gè)隊(duì)列Queue<String> queue = new LinkedList<>(); // 入隊(duì) queue.offer("apple"); queue.offer("banana"); queue.offer("orange"); // 出隊(duì) String first = queue.poll(); System.out.println(first); // 輸出: apple // 獲取隊(duì)首元素 String peek = queue.peek(); System.out.println(peek); // 輸出: banana
四、集合(Set)
集合是一種無(wú)序、不重復(fù)的數(shù)據(jù)結(jié)構(gòu)。Java中提供了多個(gè)實(shí)現(xiàn)集合接口的類(lèi),如HashSet、TreeSet和LinkedHashSet等。這里以HashSet為例,演示其基本用法。
// 創(chuàng)建一個(gè)集合Set<String> set = new HashSet<>(); // 添加元素 set.add("apple"); set.add("banana"); set.add("orange"); // 刪除元素 set.remove("banana"); // 判斷元素是否存在 boolean contains = set.contains("apple"); System.out.println(contains); // 輸出: true // 遍歷集合 for (String item : set) { System.out.println(item); }
五、映射(Map)
映射是一種將鍵和值聯(lián)系起來(lái)的數(shù)據(jù)結(jié)構(gòu),也稱(chēng)為鍵值對(duì)(key-value)結(jié)構(gòu)。Java中提供了多個(gè)實(shí)現(xiàn)映射接口的類(lèi),如HashMap、TreeMap和LinkedHashMap等。這里以HashMap為例,演示其基本用法。
// 創(chuàng)建一個(gè)映射Map<String, Integer> map = new HashMap<>(); // 添加鍵值對(duì) map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); // 獲取鍵對(duì)應(yīng)的值 int value = map.get("banana"); System.out.println(value); // 輸出: 2 // 刪除鍵值對(duì) map.remove("orange"); // 遍歷映射 for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); int val = entry.getValue(); System.out.println(key + " -> " + val); }
以上是Java集合框架中的常用特性和使用方法。在實(shí)際開(kāi)發(fā)中,我們需要根據(jù)具體應(yīng)用場(chǎng)景選擇合適的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,并注意它們的特點(diǎn)和性能表現(xiàn)。
如果你是Java初學(xué)者,在Java的學(xué)習(xí)上有困難可以來(lái)試試Java入門(mén)課程,零基礎(chǔ)也能輕松入門(mén)~