java.util.Queue接口是java.util.Collection子接口。

它代表一个有序的对象列表,就像List一样,但是它的使用有略微的区别。

Queue被设计成从末端插入并且从头部删除的形式。

Queue的实现类

java.util.LinkedList

java.util.PriorityQueue

LinkedList是一个非常标准的队列实现。

PriorityQueue保存数据默认是根据内部的自然排序,如果指定了Comparator比较器,

则会使用比较器进行排序。

添加,访问和删除元素

添加元素使用继承自Collection的add()方法。

Queue queue = new LinkedList();

queue.add("1");

queue.add("2");

queue.offer("3");

// peek = 1

Object peek = queue.peak();

// element = 1

Object element = queue.element();

// poll = 1

Object poll = queue.poll();

// remove = 2

Object remove = queue.remove();

peek()方法,返回当前queue中的首元素但不删除该元素,如果队列为空则返回null。

element()方法与peek()方法类似,但是当队列为空时抛出异常。

poll()方法,返回并且删除queue中首元素,队列为空返回null。

remove()方法与poll()方法类似,但当队列为空时抛出异常。

add()与offer()方法都将再末尾添加一个元素。

Queue queueA = new LinkedList();

queueA.add("element 0");

queueA.add("element 1");

queueA.add("element 2");

// 使用 Iterator

Iterator iterator = queueA.iterator();

while(iterator.hasNext(){

String element = (String) iterator.next();

}

// 使用 for-loop

for(Object object : queueA) {

String element = (String) object;

}

java queue 实现类 区别_Java集合11 (Queue)相关推荐

  1. java队列转集合_Java集合 使用Queue

    队列(Queue)是一种经常使用的集合.Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表.它和List的区别在于,List可以在任意位置添加和删除元素,而 ...

  2. Java集合11 (Queue)

    2019独角兽企业重金招聘Python工程师标准>>> java.util.Queue接口是java.util.Collection子接口. 它代表一个有序的对象列表,就像List一 ...

  3. java编写教师类输出_Java类和对象的区别和联系,超简单易懂!

    在面向对象的编程语言中,类和对象必然是最核心的特性之一.本文主要介绍Java中的类和对象. 示例 以班级成员为例,班上有小红.小明.小李,还有王老师.张老师和魏老师,我们认为他们都属于"人类 ...

  4. java 泛型 与类反射_Java技能 —— 对象泛型以及类反射机制的应用

    一,泛型和反射的初识 Java泛型是JDK 5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型.简单的理解就是参数化类型,我们一开始就知道这个泛型T是Str ...

  5. java long和int 区别_java long int的区别

    java long int的区别 java中long和int都属于整型,为什么还要细分为long和int两种数据类型呢?这是因为它们代表的大小不一样.具体区别如下: 1.区别1 16位系统:long是 ...

  6. java和c++的区别_JAVA和C++区别详解

    JAVA和C++区别详解 来源:-- 作者:-- 浏览:811 时间:2016-08-10 14:18 标签: 摘要: 1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然 ...

  7. java与javac的区别_java与javac的区别

    学过Java的都知道javac,它是Java语言的编译器,那么,这两者有什么具体的区别呢?下面学习啦小编给大家介绍一下Java和javac的区别. Java是一种可以撰写跨平台应用软件的面向对象的程序 ...

  8. java循环遍历类属性_java循环遍历类属性 get 和set值方法

    //遍历sqspb类 成员为String类型 属性为空的全部替换为"/" Field[] fields = sqspb.getClass().getDeclaredFields() ...

  9. java与前端的区别_java与前端的区别

    java与前端的区别 1.web前端,主要是给网站做静态页面的,也就是说你平时浏览的网站所看到的页面基本都出自web前端,不过网站版面可以是美工出图. 2.web前端需要掌握的技术有:DIV+CSS, ...

最新文章

  1. LeetCode 489. Robot Room Cleaner--C++,Python解法
  2. 判断一个点是否在三角形内部
  3. python wxpython backend wxagg_如何刷新wx.面板正确地?
  4. python vscode_VScode || 为VScode配置python环境
  5. swift通知栏推送_如何使用Swift使用推送通知构建食品交付应用
  6. 令人失望的IE7Beta,仍然不支持Web标准。
  7. php switch if,php switch 与 if else 区别
  8. anjular.js读取数据库数据调用实例
  9. Class绑定、Class对象绑定、v-if(条件渲染)、v-show(元素显示)、v-for(列表渲染)
  10. div模拟textarea在ios下不兼容的问题解决
  11. 【CSS】Table样式
  12. sitecore系统教程之使用修补程序文件自定义Sitecore配置
  13. (转)NYU教授给写AI新闻的记者们写了一封推心置腹的信,你也应该读读
  14. ai驱动数据安全治理_利用AI驱动的自动协调器实时停止有毒信息
  15. excel服务器运行失败怎么办,解决勤哲EXCEL服务器启动失败的问题
  16. 深度学习中的优化算法之Adadelta
  17. windows自带备份驱动
  18. NOI2014--起床困难症
  19. 车载以太网和工业以太网区别
  20. Linux命令之停机halt

热门文章

  1. Java泛型用于方法,类和接口
  2. tomcat的安装及配置
  3. .Net Core 学习资料
  4. 写出漂亮代码的七种方法
  5. 在Windows2003server上安装msn9.0以上版本的解决办法
  6. .net 中使用socket (c#)
  7. 操作系统学习笔记目录(暂时不全223)
  8. linux的常用操作——压缩和解压缩
  9. 分区助手扩大c盘后自动修复_磁盘分区工具,这个好用;无论调整C盘还是系统迁移...
  10. vue aplayer 进度条无法拖动_Vue-rideo-player视频播放插件的使用