gpt4 book ai didi

java - 尝试按存储节点的值之一对优先级队列进行排序

转载 作者:行者123 更新时间:2023-12-01 15:07:39 24 4
gpt4 key购买 nike

所以我对优先级队列很陌生。在我尝试实现的算法中,我想根据存储节点的 functionValue 对优先级队列进行排序。我不明白优先级队列如何知道按该值对节点进行排序,而不是我的节点对象的其他八个实例变量之一。我很确定我定义了一个 Comparator 对象来定义比较/排序规则,但我无法了解 Comparator 的 Oracle 类库的正面或反面。

这是我的节点类的属性

public class Node{

public char label; //Holds char for the Move used; U, D, L, R
public boolean visited = false;
public State nodeState; //Each node holds a State object
int depth;
int heuristicCount;
int functionCount; <--- This is the property I want the priority queue to sort by.
.
.
.

最佳答案

Comparator 是一个非常简单的界面。你有什么困难吗?关键位是 compare method 。您只需实现它来比较类的两个实例即可。像这样的东西:

public class NodeComparator implements Comparator<Node> {
public int compare(Node a, Node b) {
Integer aCount = a.getFunctionCount();
Integer bCount = b.getFunctionCount();
return a.compareTo(b);
}
}

关于java - 尝试按存储节点的值之一对优先级队列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761356/

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