首页 > 代码库 > 初识java集合——队列
初识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集合——队列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。