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);
}
}
Java数据结构——双端队列的更多相关文章
- 6.基本数据结构-双端队列(Deque)
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- 06 基本数据结构 - 双端队列(Deque)
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- 六.基本数据结构-双端队列(Deque)
一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. - 特性:deque 特殊之处在于添加和删除项是非限制 ...
- 数据结构----双端队列Dque
双端队列的概念与数据结构 deque(也称为双端队列)是与队列类似的项的有序集合.它有两个端部,首部和尾部,并且项在集合中保持不变. deque 特殊之处在于添加和删除项是非限制性的.可以在前面或后面 ...
- Java数据结构——双端链表
//================================================= // File Name : FirstLastList_demo //------------ ...
- 自己动手实现java数据结构(四)双端队列
1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念.和栈相对应,在许多算法设计中,需要一种"先进先出(First Input First Output)"的数据结构,因 ...
- java数据结构-09双端队列
一.相关概念: (Deque)双端队列能够在队头.队尾进行添加.删除等操作 二.接口设计: 三.代码实现 public class Deque<E> { private List< ...
- Java 集合深入理解(10):Deque 双端队列
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 什么是 Deque Deque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋 ...
- python 下的数据结构与算法---4:线形数据结构,栈,队列,双端队列,列表
目录: 前言 1:栈 1.1:栈的实现 1.2:栈的应用: 1.2.1:检验数学表达式的括号匹配 1.2.2:将十进制数转化为任意进制 1.2.3:后置表达式的生成及其计算 2:队列 2.1:队列的实 ...
随机推荐
- c语言大小写转化函数(包括字母和字符串)
本憨憨忘了好几次了,这次一定记住他们! 首先大小写相差32.转换的话自己写函数也是可以写出来的. 1.字母 如果是字母转的话,用toupper(),tolower() 头文件是<ctype.h& ...
- turtle库常用函数
- Python列表函数和方法
Python列表函数和方法: 函数: len(列表名): 返回列表长度 # len(列表名): # 返回列表长度 lst = [1,2,3,'a','b','c'] print("lst 列 ...
- 3-Pandas之什么是Panel?
一.什么是Panel Series:包含一维索引的一组数据 DataFrame:包含index和columns两个轴 Panel(面板):一种三维数据容器 一个Panel对象由3个轴构成: items ...
- UOJ #310 黎明前的巧克力 FWT dp
LINK:黎明前的巧克力 我发现 很多难的FWT的题 都和方程有关. 上次那个西行寺无余涅槃 也是各种解方程...(不过这个题至今还未理解. 考虑dp 容易想到f[i][j][k]表示 第一个人得到巧 ...
- 项目积累————关于map的getOrDefault用法
今天在学习领导的编程手法时,注意到了以前没用过的一个方法,那就是map的getOrDefault,看了一下感觉这个方法的用途还是非常广泛的,比如可以实现一个简单的通讯录的功能.下面看我写的一个测试类. ...
- SparkSQL JDBC和JDBCServer区别
注意SparkSQL JDBC和SparkSQL JDBCSever是完全两种不同的场景. SparkSQL JDBC SparkSQL可以使用JDBC的方式访问其他数据库,和普通非spark程序访问 ...
- [转]new一个对象的过程中发生了什么?
来自:沉默哥 | 公号 :程序员小乐 链接:cnblogs.com/JackPn/p/9386182.html Java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就 ...
- SpringCloud微服务:基于Nacos组件,整合Dubbo框架
源码地址:GitHub·点这里 || GitEE·点这里 一.基础组件简介 1.Dubbo框架 Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的架构的崛起,更多的公司转向微服 ...
- JS pc端网页特效
offset offset翻译就是偏移量,可以使用他相关的属性可以动态的得到该元素的位置.大小等等 获得元素距离带有定位父元素的位置 获得元素自己的大小(宽度高度) 注 ...