• Java数据结构——双端队列


    双端队列(Deque)
    双端队列是指允许两端都可以进行入队和出队操作的队列,其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端,两端都可以入队和出队。Deque继承自Queue接口,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常用的。

    常用方法

    简单实现

    import java.util.Deque;
    import java.util.LinkedList;
    
    public class MyDeque {
    public static void main(String[] args) {
    
    Deque<Integer> deque = new LinkedList<Integer>();
    deque.add(1);
    deque.add(2);
    deque.add(3);
    
    //查看队首元素
    System.out.println("队首元素:"+deque.peek());
    System.out.println("队列:"+deque);
    
    //从队首加元素(队列有容量限制时用,无则用addFirst)
    deque.offerFirst(4);
    System.out.println("队首加入元素后:"+deque);
    //从队尾加入元素(队列有容量限制时用,无则用addLast)
    deque.offerLast(5);
    System.out.println("队尾加入元素后:"+deque);
    
    //offer()默认从队尾加入元素
    deque.offer(6);
    System.out.println("队尾加入元素后:"+deque);
    
    //移除并返回队首第一个元素,队列为空时,会抛出NoSuchElementException异常
    deque.removeFirst();
    System.out.println("移除队首第一个元素后:"+deque);
    
    //移除并返回队尾第一个元素,队列为空时,会抛出NoSuchElementException异常
    deque.removeLast();
    System.out.println("移除队尾第一个元素后:"+deque);
    
    //移除并返回队首第一个元素,队列为空时,返回null
    deque.pollFirst();
    System.out.println("移除队首第一个元素后:"+deque);
    
    //移除并返回队尾第一个元素,队列为空时,返回null
    deque.pollLast();
    System.out.println("移除队尾第一个元素后:"+deque);
    
    //获取不移除队首第一个元素.队列为空时,抛出NoSuchElementException
    System.out.println("队首第一个元素:"+deque.getFirst());
    System.out.println("获取队首第一个元素后:"+deque);
    
    //获取不移除队尾第一个元素.队列为空时,抛出NoSuchElementException
    System.out.println("队尾第一个元素:"+deque.getLast());
    System.out.println("获取队尾第一个元素后:"+deque);
    
    //获取不移除队首第一个元素.队列为空时,返回null
    System.out.println("队首第一个元素:"+deque.peekFirst());
    System.out.println("获取队首第一个元素后:"+deque);
    
    //获取不移除队尾第一个元素.队列为空时,返回null
    System.out.println("队尾第一个元素:"+deque.peekLast());
    System.out.println("获取队尾第一个元素后:"+deque);
    
    //循环获取元素并在队列移除元素
    while(deque.size()>0){
    System.out.println("获取元素为:"+ deque.pop()+" 并删除");
    }
    System.out.println("队列为:"+deque);
    }
    }
  • 相关阅读:
    MySQL5.7的Linux安装shell脚本之二进制安装
    MySQL与Mongo简单的查询 1
    order by 与group by 之间排序问题
    说说左连接出现重复记录的问题
    MySQL5.6的Linux安装shell脚本之二进制安装(一)
    搭建简单FTP服务器以及过程中容易遇到的几个问题(一)
    jqurty
    jquery中的事件与动画
    SQL SERVER数据库设计与现实
    jquery2
  • 原文地址:https://www.cnblogs.com/ericz2j/p/10519678.html
Copyright © 2020-2023  润新知