我是靠谱客的博主 健忘小蝴蝶,这篇文章主要介绍Java容器之QueueJava容器之Queue,现在分享给大家,希望可以做个参考。

Java容器之Queue

1. Queue 简介

1.1. Queue 接口

复制代码
1
2
public interface Queue<E> extends Collection<E> {}

1.2. AbstractQueue 抽象类

AbstractQueue 类提供 Queue 接口的核心实现,以最大限度地减少实现 Queue 接口所需的工作。

AbstractQueue 抽象类定义如下:

复制代码
1
2
3
4
public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E> {}

1.3. Deque 接口

复制代码
1
2
public interface Deque<E> extends Queue<E> {}

Deque 接口是 double ended queue 的缩写,即双端队列。Deque 继承 Queue 接口,并扩展支持在队列的两端插入和删除元素

所以提供了特定的方法,如:

  • 尾部插入时需要的addLast(e), offerLast(e)
  • 尾部删除所需要的removeLast(), pollLast()

大多数的实现对元素的数量没有限制,但这个接口既支持有容量限制的 deque,也支持没有固定大小限制的。

2. ArrayDeque

复制代码
1
2
3
public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable {}

ArrayDequeDeque 的顺序表实现。

ArrayDeque 用一个动态数组实现了栈和队列所需的所有操作。

3. LinkedList

LinkedListDeque 的链表实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class LinkedListQueueDemo { public static void main(String[] args) { //add()和remove()方法在失败的时候会抛出异常(不推荐) Queue<String> queue = new LinkedList<>(); queue.offer("a"); // 入队 queue.offer("b"); // 入队 queue.offer("c"); // 入队 for (String q : queue) { System.out.println(q); } System.out.println("==="); System.out.println("poll=" + queue.poll()); // 出队 for (String q : queue) { System.out.println(q); } System.out.println("==="); System.out.println("element=" + queue.element()); //返回第一个元素 for (String q : queue) { System.out.println(q); } System.out.println("==="); System.out.println("peek=" + queue.peek()); //返回第一个元素 for (String q : queue) { System.out.println(q); } } }

4. PriorityQueue

PriorityQueue 类定义如下:

复制代码
1
2
3
public class PriorityQueue<E> extends AbstractQueue<E> implements java.io.Serializable {}

PriorityQueue 要点:

  • PriorityQueue 实现了 Serializable,支持序列化。
  • PriorityQueue 类是无界优先级队列。
  • PriorityQueue 中的元素根据自然顺序或 Comparator 提供的顺序排序。
  • PriorityQueue 不接受 null 值元素。
  • PriorityQueue 不是线程安全的。

最后

以上就是健忘小蝴蝶最近收集整理的关于Java容器之QueueJava容器之Queue的全部内容,更多相关Java容器之QueueJava容器之Queue内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部