PriorityQueue优先级队列及优先级阻塞队列
2017-03-15 09:36
393 查看
使用优先级队列时必须进行对象进行排序
public static void main(String...args){
}
public static void main(String...args){
//优先级阻塞队列 调用take方法 PriorityBlockingQueue<PriorityEntity> priorityBlockingQueue = new PriorityBlockingQueue<PriorityEntity>(); PriorityEntity priorityEntity1 = new PriorityEntity ("123",2L); PriorityEntity priorityEntity2 = new PriorityEntity ("we4",1L); priorityBlockingQueue.put(priorityEntity1); priorityBlockingQueue.put(priorityEntity2);//如果队列满了,再添加就会被阻塞 try { System.out.println(priorityBlockingQueue.take().getEntity() + ""); System.out.println(priorityBlockingQueue.take().getEntity() + ""); System.out.println(priorityBlockingQueue.take().getEntity() + "");//为空,数据等待有数据 } catch (InterruptedException e) { e.printStackTrace(); } //优先级队列 PriorityQueue<PriorityEntity> priorityQueue = new PriorityQueue<PriorityEntity>(); PriorityEntity priority1 = new PriorityEntity ("123",2L); PriorityEntity priority2 = new PriorityEntity ("we4",1L); priorityQueue.add(priority1); priorityQueue.add(priority2);//如果队列满了,再添加就报错 System.out.println(priorityQueue.poll().getEntity() + ""); System.out.println(priorityQueue.poll().getEntity() + ""); System.out.println(priorityQueue.poll().getEntity() + "");//为空,再去直接空指针
}
package com.lixy.practice; /** * 可对比两个实体大小的类 * Created by Administrator on 2016/56. */ public class PriorityEntity implements Comparable<PriorityEntity> { private Object entity; private long priority; public PriorityEntity(Object entity, long priority) { this.entity = entity; this.priority = priority; } /** * 用当前实体的priority与o的对比,数字小优先级高 * @param o 对比实体 * @return 1:当前实体大;-1:当前实体小;0:相等 */ @Override public int compareTo(PriorityEntity o) { if(this.priority > o.priority) return 1; else if(this.priority < o.priority) return -1; else return 0; } public Object getEntity() { return entity; } public long getPriority() { return priority; } }
相关文章推荐
- 优先级阻塞队列
- PriorityQueue优先级队列
- java之_队列(PriorityQueue 优先级队列)
- 优先级队列:PriorityQueue
- 五 : PriorityBlockingQueue 优先级阻塞队列
- 优先级队列:PriorityQueue
- 优先级队列——PriorityQueue
- 优先级队列:PriorityQueue
- PriorityQueue 优先级队列
- 其他阻塞队列DelayQueue&PriorityBlockQueue延迟阻塞队列和优先级阻塞队列
- 【Java学习笔记】45:优先级队列PriorityQueue和比较器Comparator
- 基于堆实现的优先级队列:PriorityQueue 解决 Top K 问题
- JAVA中的优先级队列PriorityQueue
- 优先级队列:PriorityQueue
- 优先级队列:PriorityQueue
- JDK中优先级队列PriorityQueue实现分析
- PriorityQueue优先级队列 学习
- Android PriorityQueue优先级队列 学习!
- android PriorityQueue优先级队列解析
- PriorityQueue 优先级队列【java】