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