Java 哈希映射的优先级队列
我有一个字符串和一个顶点的哈希映射,这是一个类 我想为顶点类的属性距离创建优先级队列。。。我该怎么做Java 哈希映射的优先级队列,java,Java,我有一个字符串和一个顶点的哈希映射,这是一个类 我想为顶点类的属性距离创建优先级队列。。。我该怎么做 private final PriorityQueue Nodes ; private HashMap<String,Vertex> c ; private final PriorityQueue节点; 私有哈希映射c; 我必须根据vertex.distance值在hashmap c的所有成员上创建一个优先级队列 请告诉我应该怎么做,因为无论我在尝试什么,我总是会遇到编译错误……
private final PriorityQueue Nodes ;
private HashMap<String,Vertex> c ;
private final PriorityQueue节点;
私有哈希映射c;
我必须根据vertex.distance值在hashmap c的所有成员上创建一个优先级队列
请告诉我应该怎么做,因为无论我在尝试什么,我总是会遇到编译错误……在不知道您的实现的情况下,我给出以下答案: 现在来看,似乎有一个构造函数接受。我猜想您需要做的是创建一个与vertex.distance值相对应的比较器 因此,例如(这是未经测试的代码。将其视为伪代码):
在不了解您的实现的情况下,我给出以下答案: 现在来看,似乎有一个构造函数接受。我猜想您需要做的是创建一个与vertex.distance值相对应的比较器 因此,例如(这是未经测试的代码。将其视为伪代码):
根据我对您问题的理解,我认为您需要一个
PriorityQueue
,它根据distance
属性的值对Vertex
类的实例进行排序
您需要定义一个
比较器
,传入指定对象排序方式的PriorityQueue
,或者您可以使Vertex
类实现Comparable
并实现其compareTo
方法 根据我对您问题的理解,我认为您需要一个PriorityQueue
,它根据distance
属性的值对Vertex
类的实例进行排序
您需要定义一个
比较器
,传入指定对象排序方式的PriorityQueue
,或者您可以使Vertex
类实现Comparable
并实现其compareTo
方法 我正在尝试获取一个处理顶点距离的优先级队列。。。因为我已经在hashmap中存储了顶点,所以我需要得到这个…看看我正在尝试得到一个优先级队列,它处理顶点距离。。。因为我已经在hashmap中存储了顶点,所以我需要得到这个…看看一个问题。。。。在这里我将在哪里使用hashmap。。。就像在comparator函数中一样,或者只是在VertexComparator函数中传递……我会在HashMap中获取每个顶点,并将其放入节点PQ中。但是,我很难知道,因为我不知道你要解决的问题。只是一个问题。。。。在这里我将在哪里使用hashmap。。。就像在comparator函数中一样,或者只是在VertexComparator函数中传递……我会在HashMap中获取每个顶点,并将其放入节点PQ中。但是,我很难知道,因为我不知道你们试图解决的问题。
class VertexComparator implements Comparator<Vertex>{
public int compare(Vertex v1, Vertex v2){
return v1.distance - v2.distance;
}
}
PriorityQueue Nodes = new PriorityQueue(100, new VertexComparator());