java priorityqueue
java priorityqueue是怎样的呢?下面长沙家政网就让我们一起来了解一下吧
java中的priorityqueue一般也就是代表优先队列。
这是属于Queue接口的实现,能够对其中元素进行排序,还能放基本数据类型的包装类或是自定义的类,而对于基本数据类型的包装类,优先队列中元素一般是默认排列顺序为升序排列的。
参考范例
队列保存的是基本数据类型的包装类,具体代码为
//自定义比较器,降序排列
static Comparator<Integer> cmp = ne Comparator<Integer>() {
public int pare(Integer e1, Integer e2) {
return e2 - e1;
}
};
public static void main(String[] args) {
//不用比较器,默认升序排列
Queue<Integer> q = ne PriorityQueue<>();
q.add(3);
q.add(2);
q.add(4);
hile(!q.isEmpty())
{
System.out.print(q.poll()+" ");
}
/
输出结果
2 3 4
/
//使用自定义比较器,降序排列
Queue<Integer> qq = ne PriorityQueue<>(cmp);
qq.add(3);
qq.add(2);
qq.add(4);
hile(!qq.isEmpty())
{
System.out.print(qq.poll()+" ");
}
/
输出结果
4 3 2
/
}
队列保存的是自定义类,具体代码为
//矩形类
class Node{
public Node(int chang,int kuan)
{
this.chang=chang;
this.kuan=kuan;
}
int chang;
int kuan;
}
public class Test {
//自定义比较类,先比较长,长升序排列,若长相等再比较宽,宽降序
static Comparator<Node> cNode=ne Comparator<Node>() {
public int pare(Node o1, Node o2) {
if(o1.chang!=o2.chang)
return o1.chang-o2.chang;
else
return o2.kuan-o1.kuan;
}
};
public static void main(String[] args) {
Queue<Node> q=ne PriorityQueue<>(cNode);
Node n1=ne Node(1, 2);
Node n2=ne Node(2, 5);
Node n3=ne Node(2, 3);
Node n4=ne Node(1, 2);
q.add(n1);
q.add(n2);
q.add(n3);
Node n;
hile(!q.isEmpty())
{
n=q.poll();
System.out.println("长: "+n.chang+" 宽" +n.kuan);
}
/
输出结果
长: 1 宽2
长: 2 宽5
长: 2 宽3
/
}
}
以上就是长沙家政网小编的分享了,希望能够帮助到大家。
家电上门维修
- apple官方售后维修中心 芜湖apple官方售后维修中心
- 24小时上门修手机 闪修侠上门维修电话
- 戴尔电脑售后维修服务中心 戴尔笔记本电脑售后
- 北京上门维修电脑服务 北京上门维修电脑服务电
- apple官方售后维修点查询 apple官方售后维修点查询
- 24小时上门维修电话 宿州爱玛24小时上门维修电话
- 创维电视维修 创维电视维修收费标准
- 宝珀售后维修中心服务 宝珀售后维修中心服务内
- 24小时上门维修水电电话 附近上门水电维修电话
- 宝玑维修费用 宝玑维修费用多少钱
- 联想电脑售后维修服务网点 上海联想电脑售后维
- 维修变速箱费用多少钱 维修瑞虎8变速箱费用多少
- 雅典维修点:雅典维修点过年放假文案
- 微软surface维修服务中心 surface官方维修中心地址
- 江诗丹顿售后维修中心电话 江诗丹顿官方售后网
- 雅典售后维修电话 雅典售后维修电话号码