队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。

LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

Java中Queue有一些常用的方法:

offer、add
poll、remove
peek、element

每一行中的两个函数,实现的功能是一样的,但也有所不同。

offer,add区别:

一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。

这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。

poll,remove区别:

remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似,

但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。

peek,element区别:

element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null

最新文章

  1. cookie入门
  2. 用C++画心(转)
  3. java栈和堆区别
  4. 玩坏JVM很简单--toString的递归调用
  5. Linux 升级 Python 至 3.x
  6. yum 配置
  7. HTML5学习记录1-新特性
  8. [ERROR][org.springframework.web.context.ContextLoader][main] Context initialization failed org.sprin
  9. 自学Python三 Python中的屠龙刀(续)
  10. thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片
  11. 基于Qt的信号分析简单应用软件的设计
  12. C++中的RAII技法
  13. 初入servlet:Allocate exception for servlet
  14. UNIX域协议(无名套接字)
  15. Jmeter固定定时器(Constant Timer)
  16. 《大型网站系统与Java中间件实践》
  17. Win10系列:UWP界面布局进阶6
  18. STL 源代码剖析 算法 stl_algo.h -- search_n
  19. 微信小程序:WXML 模板
  20. 解决IDEA导入Myclipse项目的时候没有识别为Web项目的问题

热门文章

  1. asp.net core 系列之静态文件
  2. Redis(四)--- Redis的命令参考
  3. Python实现ParseDuration-支持解析字符串格式的时间单位,例如将小时或者分钟数转换为秒
  4. 1.Java概述、安装及环境搭建
  5. jboss反序列化漏洞复现(CVE-2017-7504)
  6. 【iOS】Error: Error Domain=PBErrorDomain Code=7 "Cannot connect to pasteboard server
  7. jdk1.8源码解析:HashMap底层数据结构之链表转红黑树的具体时机
  8. Python开发异步任务Celery的使用教程!
  9. 有容云-【原理】Docker存储驱动之AUFS
  10. Redis分布式锁实战