一.Queue的实现

通过LinkedList类实现Queue接口来完成对Queue的实例类的实现,代码如下:

Queue<Integer> queue=new LinkedList<>();//linkedList实现了Queue接口,将其向上转型为队列

二.Queue的方法

1.offer————加入元素(加入至队尾)

queue.offer(2);//使用offer将元素插入队尾

2.remove,poll————返回头结点并删除元素

区别remove方法在队列为空时将抛出异常,而poll将返回null

queue.remove();//remove poll 返回头结点并移除 remove在空时抛出异常  但是poll返回null

3.element,peek ————返回头结点,不删除元素

区别element方法在队列为空时将抛出异常,而peek 将返回null

queue.peek();//删除头结点peek/element都是返回队头但是不移除队头,但是peek在没有元素时返回null  element抛出异常

 

三.PriorityQueue队列(优先级队列)的实现

注意点:

在实现了comparator接口的类可以PriorityQueue队列中调用offer方法实现排序

代码如下:

        PriorityQueue<Integer> pque=new PriorityQueue<>();
pque.offer(6);//使用offer添加可以保证有序
pque.offer(0);
pque.offer(23);
pque.offer(1);
System.out.println(pque);//0 1 23 6
pque.add(3);//使用add方法无法排序
System.out.println(pque);//无须

 

(补充)

一.了解collection和iterator的关系

首先只有实现了iterator接口的才能使用foreach遍历(数组除外)。

collection是iterator接口的子接口

public interface Collection<E> extends Iterable<E> {

所以collection所有的子接口可以实现foreach遍历。

Java中的容器 I————浅谈Queue和PriorityQueue的更多相关文章

  1. Java中的容器 I————浅谈List

    一.List接口的继承关系 List接口是Collection接口的子接口,而ArrayList和LinkedList以及Vector是其实现类. List的特点是可以将元素维护在特定的序列中,可以再 ...

  2. 对kotlin和java中的synchronized的浅谈

    synchronized在java中是一个关键字,但是在kotlin中是一个内联函数.假如分别在java和kotlin代码锁住同一个对象,会发生什么呢,今天写了代码试了试.首先定义people类 12 ...

  3. Java中Integer和String浅谈

    Java中的基本数据类型有八种:int.char.boolean.byte.long.double.float.short.Java作为一种面向对象的编程语言,数据在Java中也是一种对象.我们用基本 ...

  4. Java中常用修饰符浅谈

    一.public.protected.default和private修饰符的作用域 public:在java程序中,如果将属性和方法定义为 public 类型,那么此属性和方法所在的类和及其子类,同一 ...

  5. Java中的SPI原理浅谈

    在面向对象的程序设计中,模块之间交互采用接口编程,通常情况下调用方不需要知道被调用方的内部实现细节,因为一旦涉及到了具体实现,如果需要换一种实现就需要修改代码,这违反了程序设计的"开闭原则& ...

  6. (转)Java中的容器详细总结

    Java中的容器详细总结(编辑中) 原文链接:http://anxpp.com/index.php/archives/656/ 注:本文基于 Jdk1.8 编写 通常程序总是根据运行时才知道的某些条件 ...

  7. .net中对象序列化技术浅谈

    .net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储 ...

  8. java中的容器问题

    小小的总结一下java中的容器问题. 一.三个知识点 1.迭代器 1).java.util.Interator + hasnext(); next(); remove(); 2).java.lang. ...

  9. Java中的容器(集合)之ArrayList源码解析

    1.ArrayList源码解析 源码解析: 如下源码来自JDK8(如需查看ArrayList扩容源码解析请跳转至<Java中的容器(集合)>第十条):. package java.util ...

随机推荐

  1. const 内联 枚举 宏

    const 常量   程序运行时在常量表中,系统为它分配内存,在堆栈分配了空间:const常量有数据类型:语句末有分号:有类型检查:可以限制范围 //将所有不希望改变的变量加const修饰 const ...

  2. linux下top命令参数详解

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: Mem: 191272k to ...

  3. C++11之 std::atomic (不用锁实现线程互斥)

    std::atomic_flag std::atomic_flag是一个原子的布尔类型,可支持两种原子操作: test_and_set, 如果atomic_flag对象被设置,则返回true; 如果a ...

  4. TCP/IP报文 三次握手 四次挥手

    1.TCP报文格式  TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序 ...

  5. markdown语法模板

    (GitHub-Flavored) Markdown Editor Basic useful feature list: Ctrl+S / Cmd+S to save the file Ctrl+Sh ...

  6. DeepLearning4J

    http://blog.csdn.net/nysyxxg/article/details/52554734

  7. Spring Data JPA中的动态查询 时间日期

    功能:Spring Data JPA中的动态查询 实现日期查询 页面对应的dto类private String modifiedDate; //实体类 @LastModifiedDate protec ...

  8. CentOS7安装Nginx及配置

    Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.**它最常的用途是提供反向代理服务.** 安装   在Centos下,yum源不 ...

  9. fabric运维

    fabric中文文档:http://fabric-chs.readthedocs.io/zh_CN/chs/ 视频教程:http://study.163.com/course/courseMain.h ...

  10. DevExpress ASP.NET v18.2新功能详解(四)

    行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress ASP.NET Cont ...