数据结构之队列(Java语言描述)

Posted ITGungnir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之队列(Java语言描述)相关的知识,希望对你有一定的参考价值。

  在【这篇文章】中,我简单介绍了队列的基本数据结构及操作方式,并用C语言代码描述了队列的基本功能实现。

  JDK中默认为我们提供了队列的API—— Queue 。

  Queue是一个接口,其中提供了处理队列及其操作的一些基本方法,如果我们想要创建自己的队列,就需要先创建一个类实现Queue接口。

  在Java语言中也为我们提供了一些现成的Queue接口的实现类,如下:

 * @see java.util.Collection
 * @see LinkedList
 * @see PriorityQueue
 * @see java.util.concurrent.LinkedBlockingQueue
 * @see java.util.concurrent.BlockingQueue
 * @see java.util.concurrent.ArrayBlockingQueue
 * @see java.util.concurrent.LinkedBlockingQueue
 * @see java.util.concurrent.PriorityBlockingQueue

  从上面的源码注释中可以发现,Queue的实现类中有一个是我们平时编码经常用到的类: LinkedList 。也就是说,我们可以通过下面的代码,简单地创建一个队列:

Queue<Integer> q = new LinkedList<Integer>();

  对于一个队列来说,最重要的方法有两个,分别是:入队列和出队列。Queue接口也为我们定义了这两个方法:入队列 offer() 和出队列 poll() ,当然,LinkedList等实现类中也实现了这两个方法。在LinkedList中,offer()方法即创建一个新节点并添加到队列的最后;poll()方法即将队列的头设置为当前队列头的下一个节点。具体源码如下:

public boolean offer(E e) {
    return add(e);
}

public E poll() {
    final Node<E> f = first;
    return (f == null) ? null : unlinkFirst(f);
}

 

以上是关于数据结构之队列(Java语言描述)的主要内容,如果未能解决你的问题,请参考以下文章

# Java 常用代码片段

Java语言基础之方法的设计

(C语言)手撕数据结构之——队列

黑马程序员 C语言数据结构与算法之线性表(链表/栈/队列/顺序表)

Java之阻塞队列深度剖析

java数据结构与算法之使用两个栈实现队列