做网站需要的素材资料,辅导班如何做网站,宝安各大网站制作比较好的,团队拓展训练文章目录 JAVA集合知识总结(六)Queue1. Queue 接口2. Queue 常用方法3. Queue 的实现类介绍3.1 LinkedList3.2 PriorityQueue3.3 阻塞队列#xff08;BlockingQueue#xff09;3.4 Deque#xff08;双端队列#xff09; 4. 应用场景总结 JAVA集合知识总结(六) Queue
Queue… 文章目录 JAVA集合知识总结(六)Queue1. Queue 接口2. Queue 常用方法3. Queue 的实现类介绍3.1 LinkedList3.2 PriorityQueue3.3 阻塞队列BlockingQueue3.4 Deque双端队列 4. 应用场景总结 JAVA集合知识总结(六) Queue
Queue队列 是 位于 java.util 包的用于实现 先进先出FIFO的数据结构即先插入的元素先被处理。Queue 常用于任务调度、消息队列等场景。 1. Queue 接口
Queue 是一个接口继承自 Collection提供了队列操作的方法。常见实现类有
LinkedList可作为双端队列Deque。PriorityQueue基于优先级的队列。ArrayDeque高效的双端队列实现。ConcurrentLinkedQueue线程安全的队列无锁。BlockingQueue阻塞队列用于多线程场景。 2. Queue 常用方法
方法描述add(E e)添加元素失败时抛出异常。offer(E e)尝试添加元素添加失败返回 false。poll()移除并返回队首元素若队列为空返回 null。remove()移除并返回队首元素队列为空时抛出异常。peek()返回队首元素但不移除若队列为空返回 null。element()返回队首元素但不移除若为空抛出异常。 3. Queue 的实现类介绍
3.1 LinkedList
可用作队列或双端队列。支持添加和删除操作。
QueueInteger queue new LinkedList();
queue.offer(1);
queue.offer(2);
System.out.println(queue.poll()); // 输出 13.2 PriorityQueue
基于优先级的队列元素按自然顺序或自定义比较器排序。
QueueInteger pq new PriorityQueue();
pq.offer(5);
pq.offer(1);
System.out.println(pq.poll()); // 输出 1最小值3.3 阻塞队列BlockingQueue
BlockingQueue 是线程安全的队列实现了生产者-消费者模型。常见实现
ArrayBlockingQueue有界队列。LinkedBlockingQueue支持可选的界限。PriorityBlockingQueue带优先级的阻塞队列。
BlockingQueueInteger bq new ArrayBlockingQueue(2);
bq.put(1); // 若队列满则阻塞
System.out.println(bq.take()); // 若为空则阻塞3.4 Deque双端队列
Deque 继承自 Queue支持从两端添加和移除元素常用实现是 ArrayDeque 和 LinkedList。
DequeInteger deque new ArrayDeque();
deque.offerFirst(1); // 从头部添加
deque.offerLast(2); // 从尾部添加
System.out.println(deque.pollFirst()); // 输出 14. 应用场景
任务调度根据时间顺序依次处理任务。消息队列在系统之间传递消息。生产者-消费者模型通过阻塞队列实现多线程的数据交互。 总结
Queue 是 Java 中实现先进先出结构的接口并有多种实现类适应不同场景如基于优先级的 PriorityQueue、双端队列的 ArrayDeque 及线程安全的 BlockingQueue。