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());