`

java类集之Queue

阅读更多

Queue接口:

           Queue用于模拟队列这种数据结构。Queue接口有一个PriorityQueue实现类。除此之外,Queue还有一个Deque接口,Deque代表一个”双端队列“。双端队列可以同时从两端来添加、删除元素,因此Deque的实现类既可以当成队列使用,也可以当成栈使用。Java为Deque提供了ArrayDeque和LinkedList两个实现类。

           PriorityQueue是一个比较标准的队列实现类。之所以说它是比较标准而不是绝对标准的队列实现类而是因为PriorityQueue保存队列元素的顺序并不是按加入按加入队列的顺序,而是按队列元素的大小进行重新排序。因此当调用peek()方法或者是poll()方法取出队列中的元素时,并不是取出最先进入队列的元素,而是取出队列中最小的元素。从这个意义上来看,PriorityQueue已经违反了队列的最基本的性质”FIFO“。

例子:



 

         从上面结果可以看出,队列里的元素并没有很好的按大小进行排序,但这只是受到PriorityQueue的toString()方法的影响。当程序多次调用poll()方法时,即可看到元素按照从小到大的顺序移出队列。

        PriorityQueue不允许插入null元素,它还需要对队列元素进行排序,PriorityQueue有两种排序方式,即自然排序和定制排序。PriorityQueue对元素的要求与TreeSet对元素的要求基本一致。

 

 

List集合的遍历总结:

       当遍历List集合元素时,对于ArrayList、Vector集合,应该使用随机访问方法(get)遍历集合元素,这样性能更好;对于LinkedList,应该使用迭代器(Iterator)来遍历集合元素。

       如果需要经常的插入和删除来改变List集合大小,则应该使用LinkedList集合。因为使用ArrayList和Vector集合需要经常重新分配内部数组大小,其时间开销常常是使用ArrayList和Vector的时间开销的几十倍,效果很差。

       如果多个线程需要同时访问List集合中的元素,则应该使用Collections类把集合包装成线程安全的集合。 

  • 大小: 29.3 KB
分享到:
评论

相关推荐

    Java期末复习-类集框架

    Java类集框架 最大单值操作父接口Collection及其子接口、子类: List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作接口Queue、Set接口、HashSet类、TreeSet类、SortedSet接口 双值操作...

    JAVA核心知识点整理.zip

    集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的...

    字节大佬总结的Java面试资料

    集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 2. Iterator:迭代器,可以通过迭代器遍历集合中...

    疯狂JAVA讲义

    学生提问:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样...

    java范例开发大全源代码

     第11章 Java常用类(教学视频:66分钟) 315  11.1 数学Math类 315  实例186 求圆周率∏值 315  实例187 求对数值 316  实例188 使用取整函数 317  11.2 Random类的使用 318  实例189 随机数 ...

    java范例开发大全

    第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 319 实例190 验证码 322 11.3 ...

    Java范例开发大全 (源程序)

     第11章 Java常用类(教学视频:66分钟) 315  11.1 数学Math类 315  实例186 求圆周率∏值 315  实例187 求对数值 316  实例188 使用取整函数 317  11.2 Random类的使用 318  实例189 随机数 319  ...

    Java范例开发大全(全书源程序)

    第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 319 实例190 验证码 ...

    java范例开发大全(pdf&源码)

    第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 319 实例190 验证码 322 11.3 ...

    applet队列

    applet队列 集SSH框架,android,行业资讯,数据库,web开发,设计模式希望大家一起分享

    net-queue:用于RabbitMQ amqp客户端的精简版库包装

    构建模块后,可以在以下位置找到二进制分发程序集: net-queue-client/target/net-queue-1.0-SNAPSHOT.jar 例子 所有示例代码都可以在以下位置找到: ...

    【Java】常用数据集合体系和特点(汇总)

    文章目录1. Collection体系集合1.1 List ...TreeSet 类(二叉树-自动排序)④ CopyOnWriteArraySet 类(线程安全且高效的Set)>> HashSet排序的两种方法1.3 Queue 队列① ConcurrentLinkedQueue 类(线程安全且高效的Q

    oracle修改字符集

    Java代码 收藏代码 ORACLE instance started. Total System Global Area 76619308 bytes Fixed Size 454188 bytes Variable Size 58720256 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes ...

    javaSE代码实例

    15.1.2 外部类之内创建内部类对象 322 15.1.3 外部类之外创建内部类对象 323 15.1.4 内部类与外部类之间的成员互访 324 15.1.5 内部类与外部类的预定义对象引用this 327 15.2 局部内部类 328 15.2.1 局部...

    中间件期末考超强文档合集.rar

    2.RMI:远程方法激活,使软件开发人员能够开发这样的分布式程序:在这个分布式程序中,其远程对象的方法能够被运行在不同主机上的其他Java虚拟机(JVM)的方法所调用。 3.存根(桩)(Stub):桩是客户内部完成打包数据和...

    百度地图开发java源码-iOS_develop_learning_routes:iOS开发学习路线

    百度地图开发java源码 iOS开发学习路线 语言 计算机基础 汇编 排序算法 链表 动态规划 红黑树 B树 二叉树 回溯算法 分治算法 贪心算法 枚举算法 Stack(栈) Array(数组) Heap(堆) Graph(图表) Tree(树) ...

    梦幻般的:java工具集合,整合了web开发常用组件

    Java工具。仓库最新版本1.0.0-beta.6梦幻般的入门开发代码生成器组件,可生成基本的CRUD代码组件约会 < dependency> < groupId>...

    Android开发资料合集--续

    Handler+ExecutorService(线程池)+MessageQueue+缓存模式 45 25、Bitmap操作 49 获得输入流 49 将输入流转化为Bitmap流 49 给ImageView对象赋值 49 获取SD卡上的文件存储路径 50 将图片保存到SD卡上 50 26、TextView...

    DataStructures:Java Java中的通用数据结构

    Java中的数据结构 一些通用数据结构的实现 数据结构 链表 数组列表 堆 队列 哈希图 哈希集 二进制搜索树 堆 特里 AVL树 测验 使用JUnit5的单元测试涵盖了整个项目。 当前的行覆盖率是92%

Global site tag (gtag.js) - Google Analytics