• 【数据结构】之队列(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);
    }
  • 相关阅读:
    VSFTP日志文件详解
    RocketMQ多master多salve集群搭建
    数据持久化之bind Mounting
    数据持久化之Data Volume
    gitLab 分支保护设置
    docker容器的端口映射
    docker命令之link
    NFS客户端挂载失败之authenticated unmount request from
    docke网络之bridge、host、none
    docke通信之Linux 网络命名空间
  • 原文地址:https://www.cnblogs.com/itgungnir/p/7300637.html
Copyright © 2020-2023  润新知