博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Deque接口
阅读量:3747 次
发布时间:2019-05-22

本文共 776 字,大约阅读时间需要 2 分钟。

线性集合,支持两端插入和移除元素。 名称deque是“双端队列”的缩写,通常发音为“deck”[dek]。

此接口定义了访问双端队列两端元素的方法。 提供了插入,移除和检查元素的方法。 这些方法中的每一种都以两种形式存在:一种在操作失败时抛出异常,另一种返回特殊值(null或false,具体取决于操作)。 后一种形式的插入操作专门设计用于容量限制的Deque实现; 在大多数实现中,插入操作不会失败。

这里写图片描述

该接口既可以用作FIFO(先进先出)也可以用作LIFO(后进先出)。

此接口提供了两种方法来删除内部元素,removeFirstOccurrence和removeLastOccurrence。

与List接口不同,此接口不支持对元素的索引访问。

ArrayDeque

实现Deque接口的可调整大小的数组实现。ArrayDeque没有容量限制;他们根据需要增长以支持使用。它们不是线程安全的;在没有外部同步的情况下,它们不支持多线程的并发访问。禁止使用空元素。当用作堆栈时,此类可能比Stack快,并且在用作队列时比LinkedList更快。

关于源码讲解:

LinkedBlockingDeque

实现了BlockingDeque接口,是双向并发阻塞队列。

基于链接节点的可选绑定阻塞双端队列。
可选的容量绑定构造函数参数用作防止过度扩展的方法。 如果未指定,则容量等于Integer.MAX_VALUE。 如果没超出容量,每次插入时都会动态创建链接节点;
参考链接:

ConcurrentLinkedDeque

基于链接节点的无界并发双端队列。并发插入,删除和访问操作可跨多个线程安全执行。当许多线程共享对公共集合的访问权时,ConcurrentLinkedDeque是一个合适的选择。与大多数其他并发集合实现一样,此类不允许使用null元素。

你可能感兴趣的文章
python进程,线程,协程
查看>>
python网络编程
查看>>
你值得拥有的linux下的网络io 同步/异步/阻塞/非阻塞/BIO/NIO/AIO
查看>>
nginx日志文件配置
查看>>
HTTP over SSL/TLS
查看>>
CentOS安装fortune+cowsay
查看>>
用vue创建一个项目
查看>>
$listeners与.native的使用
查看>>
熟悉Linux 下静态库.a 与.so 库文件的生成与使用——实例
查看>>
算法训练 1的个数(输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。)
查看>>
算法训练 素因子去重(给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1)
查看>>
算法训练 二进制数数( 给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。   如5的二进制为101,包含2个“1”。)
查看>>
第十届MathorCup高校数学建模D题解题思路
查看>>
2020年高教社杯全国大学生数学建模竞赛赛题 C题分析与思路!(持续更新)
查看>>
2020年高教社杯全国大学生数学建模竞赛赛题 B题分析与思路!(持续更新)
查看>>
蓝桥杯真题 18省4-测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐
查看>>
蓝桥杯真题 19省3-数列求值 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。
查看>>
大小写字母转换函数tolower();的用法
查看>>
蓝桥杯 15校4-7对数字 今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是
查看>>
蓝桥杯真题 17省10-k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i
查看>>