初识java集合——队列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识java集合——队列相关的知识,希望对你有一定的参考价值。
有两个端头的队列,称为双端队列。可以让人们有效的在头部和尾部同时添加或删除元素
* 不支持在队列中间添加元素
*
*【 优先级队列】
* 可以按照任意的顺序插入,却总是按照排序的顺序进行检索,无论何时调用remove,返回的是
* 当前优先队列中最小的元素,然而优先级队列并没有对所有元素进行排序
* 如果用迭代器的方式,处理这些元素,并不需要对他们进行排序
*
* 优先级队列使用了堆(heap)这个优雅高效的数据结构,对树执行添加和删除操作时,最小的元素总能
* 移动到根节点
*
* 与TreeSet一样,优先级队列既可以保存实现了Comparable接口的类对象,也可以保存在构造器中
* 提供比较器的对象
*
* 优先级队列常常用于任务调度,每当启动一个任务的时候,都将优先级最高的任务从队列中删除(习惯上
* 将1设为“最高”优先级,所以会将最小的元素删除)
* */
1 //priorityQueue 2 public static void main(String[] args) { 3 PriorityQueue<GregorianCalendar> pq = new PriorityQueue<>(); 4 pq.add(new GregorianCalendar(1906, Calendar.DECEMBER, 9)); 5 pq.add(new GregorianCalendar(1815, Calendar.DECEMBER, 10)); 6 pq.add(new GregorianCalendar(1903, Calendar.DECEMBER, 3)); 7 pq.add(new GregorianCalendar(1910, Calendar.JUNE, 22)); 8 9 System.out.println("Iterator over elements..."); 10 for(GregorianCalendar g : pq) { 11 System.out.println(g.get(Calendar.YEAR)); 12 } 13 14 System.out.println("Removing elements..."); 15 while(!pq.isEmpty()) { 16 System.out.println(pq.remove().get(Calendar.YEAR)); 17 } 18 }
以上是关于初识java集合——队列的主要内容,如果未能解决你的问题,请参考以下文章