zoukankan      html  css  js  c++  java
  • 【数据结构】之队列(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);
    }
  • 相关阅读:
    SpringMVC 拦截器不拦截静态资源的三种处理方式
    Tomcat启动失败问题 (指定的主资源集 [D:javaapache-tomcat-9.0.35webappsAppManageSystem] 无效)
    oracle转postgresql FOR UPDATE WAIT 5 处理
    jq插件验证
    HTML5数据储存
    canvas 一些 用法大全
    HTML canvas 绘图
    CSS3
    HTML 核心内容
    HTML5 媒体
  • 原文地址:https://www.cnblogs.com/itgungnir/p/7300637.html
Copyright © 2011-2022 走看看