gpt4 book ai didi

Java:PriorityQueue 从自定义比较器返回错误的顺序?

转载 作者:搜寻专家 更新时间:2023-10-31 08:21:29 25 4
gpt4 key购买 nike

<分区>

我已经编写了一个自定义比较器来比较我的节点类,但是 java 优先级队列没有以正确的顺序返回我的项目。

这是我的比较器:

public int compare(Node n1, Node n2){

if (n1.getF() > n2.getF()){
return +1;
}
else if (n1.getF() < n2.getF()){
return -1;
}
else { // equal
return 0;
}
}

其中 getF 返回 double 值。然而,在将几个节点插入优先级队列后,我使用以下方法将它们打印出来:

while(open.size() > 0) {
Node t = (Node)(open.remove());
System.out.println(t.getF());
}

结果是:

6.830951894845301
6.830951894845301
6.0
6.0
5.242640687119285
7.4031242374328485
7.4031242374328485
8.071067811865476

知道为什么会这样吗?我的比较器错了吗?谢谢。

迈克

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