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, b, a] 



[]

转载于:https://my.oschina.net/u/3496297/blog/1618891

Java中的queue和deque相关推荐

  1. Java中的queue和deque对比详解

    队列(queue)简述 队列(queue)是一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则.Java中,LinkedList实现了Queue接口,因为LinkedLis ...

  2. deque stack java_一文弄懂java中的Queue家族

    简介 java中Collection集合有三大家族List,Set和Queue.当然Map也算是一种集合类,但Map并不继承Collection接口. List,Set在我们的工作中会经常使用,通常用 ...

  3. java中的Queue队列的用法

    大家好,欢迎来到雄雄的小课堂,今天给大家分享的是"java中的Queue队列的用法" 前言:好多人对Queue不是很熟悉,毕竟平时也不怎么用,遇到集合要么List要么map这些常用 ...

  4. 一文弄懂java中的Queue家族

    文章目录 简介 Queue接口 Queue的分类 BlockingQueue Deque TransferQueue 总结 java中Queue家族简介 简介 java中Collection集合有三大 ...

  5. queue double java_一文弄懂java中的Queue家族

    java中Queue家族简介 简介 java中Collection集合有三大家族List,Set和Queue.当然Map也算是一种集合类,但Map并不继承Collection接口. List,Set在 ...

  6. 万字长文深入理解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 ...

  7. Java中竟有18种队列?45张图!安排

    今天我们来盘点一下Java中的Queue家族,总共涉及到18种Queue.这篇恐怕是市面上最全最细讲解Queue的. 本篇主要内容如下: 本篇主要内容 帮你总结好的阻塞队列: 18种Queue总结 一 ...

  8. 再也不担心问到Java集合了,一文讲透Java中的数据结构

    Java数据结构实现详解 摘要 1 集合框架 1.1 顶层接口Iterable 1.2 Collection接口 2 List 2.1 List接口 2.2 List实现ArrayList 2.2.1 ...

  9. Queue与Deque的区别

    前言 ​ 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知 ...

最新文章

  1. 关于 Session 的深入探讨
  2. JVM-01Java内存区域与内存溢出异常(上)【运行时区域数据】
  3. 2016 年 Linux 领域的十大新闻,你有关注吗?
  4. Android开发工具之Android Studio-合并主干和分支代码
  5. 1011 World Cup Betting (20 分)_14行代码AC
  6. Docker 阿里云加速和 docker-compose 国内镜像
  7. arraylist扩容是创建新数组吗 java_Java编程之数组扩容
  8. 用命令实现Win7远程桌面关机和重启
  9. C++学有余力的大一同学的学习拓展
  10. 传统JDBC的弊病和mybatis的解决方案
  11. DB2 SQLCODE 异常大全编辑(二)
  12. mysql 回滚 大小设置_MySQL事物提交与回滚
  13. sicily 1209
  14. 找个对象,找个男朋友
  15. 从配置,外观,写一篇小米13测评报告
  16. linux图片编辑工具,如何在Ubuntu 18.04中安装Pinta图像编辑器
  17. 五子棋智能算法——决策树编程实现(三)
  18. [元带你学NVMe协议] NVME 2.0 新技术解决了什么痛点? 会带来哪些变革?
  19. 20、MySQL分库分表,原理实战
  20. 今日金融词汇---仓位,是什么?

热门文章

  1. 【Asp.Net】:如何处理大量页面的身份验证跳转
  2. input高级限制级用法
  3. 官方公布94本预警期刊名单,其中5本高风险
  4. java array 元素的位置_数据结构与算法:动态图解十大经典排序算法(含JAVA代码实现)...
  5. 问题 | CondaHTTPError: HTTP 404 NOT FOUND for url
  6. Linux下的socket演示程序
  7. python怎么命名未知数_码如其人,小老弟,你能写一手漂亮的Python函数吗
  8. 旅游系统_旅游景区安全标识系统设计原则
  9. C指针原理(8)-C内嵌汇编
  10. 【机器学习】推荐一个好用的开源automl工具