Java中的queue和deque
2019独角兽企业重金招聘Python工程师标准>>>
1、Queue
队列, 一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则。Java中,LinkedList实现了Queue接口,因为LinkedList进行插入、删除操作效率较高
相关方法:
boolean offer(E e):将元素追加到队列末尾,若添加成功则返回true。
E poll():从队首删除并返回该元素。
E peek():返回队首元素,但是不删除
示例:
public class QueueDemo {public static void main(String [] args) {Queue<String> queue = new LinkedList<String>();//追加元素queue.offer("one");queue.offer("two");queue.offer("three");queue.offer("four");System.out.println(queue);//从队首取出元素并删除String poll = queue.poll();System.out.println(poll);System.out.println(queue);//从队首取出元素但是不删除String peek = queue.peek();System.out.println(peek);System.out.println(queue);//遍历队列,这里要注意,每次取完元素后都会删除,整个//队列会变短,所以只需要判断队列的大小即可while(queue.size() > 0) {System.out.println(queue.poll());}}
}
运行结果:
[one, two, three, four]
one
[two, three, four]
two
[two, three, four]
two
three
four
2、Deque
双向队列,指该队列两端的元素既能入队(offer)也能出队(poll),如果将Deque限制为只能从一端入队和出队,则可实现栈的数据结构。对于栈而言,有入栈(push)和出栈(pop),遵循先进后出原则
常用方法如下:
void push(E e):将给定元素”压入”栈中。存入的元素会在栈首。即:栈的第一个元素
E pop():将栈首元素删除并返回。
示例:
public class DequeDemo {public static void main(String[] args) {Deque<String> deque = new LinkedList<String>();deque.push("a");deque.push("b");deque.push("c");System.out.println(deque);//获取栈首元素后,元素不会出栈String str = deque.peek();System.out.println(str);System.out.println(deque);while(deque.size() > 0) {//获取栈首元素后,元素将会出栈System.out.println(deque.pop());}System.out.println(deque);}
}
运行结果:
[c, b, a]
c
[c, b, a]
c
b
a
[]
转载于:https://my.oschina.net/u/3496297/blog/1618891
Java中的queue和deque相关推荐
- Java中的queue和deque对比详解
队列(queue)简述 队列(queue)是一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则.Java中,LinkedList实现了Queue接口,因为LinkedLis ...
- deque stack java_一文弄懂java中的Queue家族
简介 java中Collection集合有三大家族List,Set和Queue.当然Map也算是一种集合类,但Map并不继承Collection接口. List,Set在我们的工作中会经常使用,通常用 ...
- java中的Queue队列的用法
大家好,欢迎来到雄雄的小课堂,今天给大家分享的是"java中的Queue队列的用法" 前言:好多人对Queue不是很熟悉,毕竟平时也不怎么用,遇到集合要么List要么map这些常用 ...
- 一文弄懂java中的Queue家族
文章目录 简介 Queue接口 Queue的分类 BlockingQueue Deque TransferQueue 总结 java中Queue家族简介 简介 java中Collection集合有三大 ...
- queue double java_一文弄懂java中的Queue家族
java中Queue家族简介 简介 java中Collection集合有三大家族List,Set和Queue.当然Map也算是一种集合类,但Map并不继承Collection接口. List,Set在 ...
- 万字长文深入理解java中的集合-附PDF下载
文章目录 1. 前言 2. List 2.1 fail-safe fail-fast知多少 2.1.1 Fail-fast Iterator 2.1.2 Fail-fast 的原理 2.1.3 Fai ...
- Java中竟有18种队列?45张图!安排
今天我们来盘点一下Java中的Queue家族,总共涉及到18种Queue.这篇恐怕是市面上最全最细讲解Queue的. 本篇主要内容如下: 本篇主要内容 帮你总结好的阻塞队列: 18种Queue总结 一 ...
- 再也不担心问到Java集合了,一文讲透Java中的数据结构
Java数据结构实现详解 摘要 1 集合框架 1.1 顶层接口Iterable 1.2 Collection接口 2 List 2.1 List接口 2.2 List实现ArrayList 2.2.1 ...
- Queue与Deque的区别
前言 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知 ...
最新文章
- 关于 Session 的深入探讨
- JVM-01Java内存区域与内存溢出异常(上)【运行时区域数据】
- 2016 年 Linux 领域的十大新闻,你有关注吗?
- Android开发工具之Android Studio-合并主干和分支代码
- 1011 World Cup Betting (20 分)_14行代码AC
- Docker 阿里云加速和 docker-compose 国内镜像
- arraylist扩容是创建新数组吗 java_Java编程之数组扩容
- 用命令实现Win7远程桌面关机和重启
- C++学有余力的大一同学的学习拓展
- 传统JDBC的弊病和mybatis的解决方案
- DB2 SQLCODE 异常大全编辑(二)
- mysql 回滚 大小设置_MySQL事物提交与回滚
- sicily 1209
- 找个对象,找个男朋友
- 从配置,外观,写一篇小米13测评报告
- linux图片编辑工具,如何在Ubuntu 18.04中安装Pinta图像编辑器
- 五子棋智能算法——决策树编程实现(三)
- [元带你学NVMe协议] NVME 2.0 新技术解决了什么痛点? 会带来哪些变革?
- 20、MySQL分库分表,原理实战
- 今日金融词汇---仓位,是什么?
热门文章
- 【Asp.Net】:如何处理大量页面的身份验证跳转
- input高级限制级用法
- 官方公布94本预警期刊名单,其中5本高风险
- java array 元素的位置_数据结构与算法:动态图解十大经典排序算法(含JAVA代码实现)...
- 问题 | CondaHTTPError: HTTP 404 NOT FOUND for url
- Linux下的socket演示程序
- python怎么命名未知数_码如其人,小老弟,你能写一手漂亮的Python函数吗
- 旅游系统_旅游景区安全标识系统设计原则
- C指针原理(8)-C内嵌汇编
- 【机器学习】推荐一个好用的开源automl工具