gpt4 book ai didi

java - PriorityQueue 类的标准行为是什么?

转载 作者:行者123 更新时间:2023-12-01 22:41:02 26 4
gpt4 key购买 nike

所以我正在尝试构建我的第一个 prim 算法,为此我根据其权重按优先级对边缘进行排序。

所以我认为如果我使用优先级队列会很有帮助,为此我需要让我的边缘实现 Comparable<> 接口(interface),所以我这样做了,但我不知道优先级队列认为什么是最高优先级,会吗 是最重的边缘还是最轻的边缘?另外,优先级队列会添加同一个对象两次,还是会表现得像一个集合?

这是我的代码:

Public class Edge implements Comparable<Edge> {
int weight;

public int compareTo(Edge e) {
return e.getWeight() - this.weight;
}
}

我希望将最轻的边缘作为最高优先级。值得注意的是,这是我第一次实现优先级队列并且可比较

最佳答案

优先级队列使用所谓的对象自然排序。 The compareTo() method needs to return a -1, 0 1 。具有最高优先级的对象将始终位于队列的前面。

我也会改变你的compareTo实现,使其像这样运行。

public int compareTo(Edge e) 
{
if( e.getWeight() > this.weight )
return 1;
else if( e.getWeight() == this.weight )
return 0;
else //e.getWeight() < this.weight
return -1
}

关于java - PriorityQueue 类的标准行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com