博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 中队列的使用
阅读量:7091 次
发布时间:2019-06-28

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

刚才看见群里的一个朋友在问队列的使用,确实在现实的写代码中非常少使用队列的,反正我是从来没使用过。仅仅是学数据结构的时候学过。

以下是我写的一个小样例,希望有不足之处请提出改正。O(∩_∩)O~

看代码:

import java.util.LinkedList; import java.util.Queue; public class TestQueue { /** * @param args * @author JavaAlpha * Info 測试队列 */ public static void main(String[] args) { Queue<String> queue = new LinkedList<String>(); queue.offer("1");//插入一个元素 queue.offer("2"); queue.offer("3"); //打印元素个数 System.out.println("queue.size()"+queue.size()); //遍历打印全部的元素,安装插入是顺序打印 for (String string : queue) { System.out.println(string); } } } 打印内容: queue.size()3 1 2 3

 

以下是API中对队列的说明:

 

public interface Queue
extends <E>

在处理元素前用于保存元素的 collection。除了主要的 操作外,队列还提供其它的插入、提取和检查操作。每一个方法都存在两种形式:一种抛出异常(操作失败时),还有一种返回一个特殊值(nullfalse,详细取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。

  抛出异常 返回特殊值
插入
移除
检查

队列通常(但并不是一定)以 FIFO(先进先出)的方式排序各个元素。只是优先级队列和 LIFO 队列(或堆栈)例外,前者依据提供的比較器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。不管使用哪种排序方式,队列的 都是调用 或 所移除的元素。在 FIFO 队列中,全部的新元素都插入队列的末尾。其它种类的队列可能使用不同的元素放置规则。每一个 Queue 实现必须指定其顺序属性。

假设可能, 方法可插入一个元素,否则返回 false。这与 方法不同,该方法仅仅能通过抛出未经检查的异常使加入元素失败。offer 方法设计用于正常的失败情况,而不是出现异常的情况,比如在容量固定(有界)的队列中。

和 方法可移除和返回队列的头。究竟从队列中移除哪个元素是队列排序策略的功能,而该策略在各种实现中是不同的。remove()poll() 方法仅在队列为空时其行为有所不同:remove() 方法抛出一个异常,而 poll() 方法则返回 null

和 返回,但不移除,队列的头。

Queue 接口并没有定义堵塞队列的方法,而这在并发编程中是非经常见的。 接口定义了那些等待元素出现或等待队列中有可用空间的方法,这些方法扩展了此接口。

Queue 实现通常不同意插入 null 元素,虽然某些实现(如 )并不禁止插入 null。即使在同意 null 的实现中,也不应该将 null 插入到 Queue 中,由于 null 也用作 poll 方法的一个特殊返回值,表明队列不包括元素。

Queue 实现通常没有定义 equalshashCode 方法的基于元素的版本号,而是从 Object 类继承了基于身份的版本号,由于对于具有同样元素但有不同排序属性的队列而言,基于元素的相等性并不是总是定义良好的。

 

转载地址:http://akiql.baihongyu.com/

你可能感兴趣的文章
《深入剖析Nginx》——2.6 特殊应用逻辑的调试
查看>>
2017年度 OSC 源创会计划,技术干货精彩纷呈
查看>>
为什么说产品化是私有IaaS的唯一出路?
查看>>
阿里云联手学而思东家,给学习加点新元素
查看>>
C++语言基础 例程 案例:MyVector类的设计
查看>>
阿里云中间件产品ARMS公测 实时监控“一站式”解决
查看>>
shiro+ehcache缓存 和 验证码 和 记住我
查看>>
200多个js技巧代码(五)
查看>>
数据库设计原理:数据建模的三个阶段
查看>>
sendmail配置和学习
查看>>
MD5工具类
查看>>
邮件归档体现数据价值
查看>>
Executors 创建单例线程newSingleThreadExecutor
查看>>
Openstack(两控制节点+四计算节点)-4 模拟控制节点宕机
查看>>
Scribe快速安装方法
查看>>
5-1 array 数组的基本概念
查看>>
httpclient4.3 设置cookie
查看>>
dd懒也是一种境地
查看>>
使用SQL语句中的Group by分组并计算每组的数量
查看>>
ThinkPHP自定义标签
查看>>