zoukankan      html  css  js  c++  java
  • 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);
    }
    }
  • 相关阅读:
    hadoop2.2.0伪分布式搭建
    HBase详解
    Hbase常用命令
    hbase读取数据原理
    约瑟夫环
    哈希表设计
    哈夫曼树的建立
    TCP的连接和释放
    什么是Kmp算法?
    什么是https
  • 原文地址:https://www.cnblogs.com/ericz2j/p/10519678.html
Copyright © 2011-2022 走看看