常用数据集合—Queue

1、实现队列的类

2、阻塞式队列已经写过了,这里看下优先级队列PriorityQueue

新建优先级队列对象

将数据添加到队列

队列的类型必须实现Comparable数据,从最底层向树的上层比较

取数据,返回队列头部数据,并重新将最小(大)数据放到队列头部

删除数据时

### Java 常用数据集合类和接口概述 Java 提供了一个强大的集合框架来处理各种数据结构。这些集合可以分为两大类别:`Collection` 和 `Map` 接口下的子集。 #### Collection 接口及其常见实现类 `Collection` 是一个顶层接口,表示一组对象的容器。它的主要子接口包括: - **List**: 存储有序、可重复的元素集合。常见的实现类有 `ArrayList`[^1] 和 `LinkedList`[^4]。 ```java import java.util.ArrayList; public class ListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); System.out.println(list.get(0)); // 输出第一个元素 } } ``` - **Set**: 不允许存储重复元素的集合。常见的实现类有 `HashSet` 和 `TreeSet`[^4]。 ```java import java.util.HashSet; public class SetExample { public static void main(String[] args) { HashSet<Integer> set = new HashSet<>(); set.add(1); set.add(2); set.add(2); // 添加失败,因为不允许重复 System.out.println(set.size()); // 输出 2 } } ``` - **Queue**: 表示队列的数据结构,支持 FIFO(先进先出)。常见的实现类有 `PriorityQueue` 和 `ArrayDeque`。 ```java import java.util.PriorityQueue; public class QueueExample { public static void main(String[] args) { PriorityQueue<Integer> queue = new PriorityQueue<>(); queue.offer(3); queue.offer(1); System.out.println(queue.poll()); // 输出最小值 1 } } ``` #### Map 接口及其常见实现类 `Map` 是键值对映射的顶级接口,其主要实现类包括: - **HashMap**: 键值对无序存储,基于哈希表实现,不允许多个相同的键[^1]。 ```java import java.util.HashMap; public class HashMapExample { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("Alice", 25); map.put("Bob", 30); System.out.println(map.get("Alice")); // 输出 25 } } ``` - **LinkedHashMap**: 继承自 `HashMap`,按插入顺序保存条目。 ```java import java.util.LinkedHashMap; public class LinkedHashMapExample { public static void main(String[] args) { LinkedHashMap<String, String> linkedMap = new LinkedHashMap<>(); linkedMap.put("Key1", "Value1"); linkedMap.put("Key2", "Value2"); System.out.println(linkedMap.keySet().toArray()[0]); // 按插入顺序输出 Key1 } } ``` - **TreeMap**: 按照自然顺序或指定比较器排序键值对。 ```java import java.util.TreeMap; public class TreeMapExample { public static void main(String[] args) { TreeMap<Integer, String> treeMap = new TreeMap<>(); treeMap.put(3, "Three"); treeMap.put(1, "One"); System.out.println(treeMap.firstKey()); // 输出最小键 1 } } ``` #### Iterable 接口的作用 `Iterable` 是集合框架的核心接口之一,定义了如何通过迭代器遍历集合中的元素[^2]。几乎所有集合类都实现了该接口,因此可以通过增强型 `for-each` 循环轻松遍历它们。 ```java import java.util.ArrayList; public class IterableExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); for (String item : list) { System.out.println(item); // 使用 for-each 遍历 } } } ``` ### 总结 以上展示了 Java 中几种常用集合类的功能与基本用法。每种集合都有特定的应用场景,开发者应根据实际需求选择合适的实现类以优化程序性能和功能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值