关于java优先级队列的问题

关于java优先级队列的问题,java,priority-queue,Java,Priority Queue,我正在尝试创建一个队列,该队列可以接受类型为X的对象。每个对象X都有一个类型为int的变量,称为distance。如何创建一个优先级队列,该队列接受类型为X的对象,但根据每个对象的可变距离对其进行排序?提供了一个优先级队列,该队列接受类型为X的对象。您可以使用此选项来订购物品。提供了一个需要花费时间的。你可以用它来订购物品。作业多少 看一看这张照片 简而言之,您可以使用堆实现优先级队列 作业多少 看一看这张照片 简而言之,您可以使用堆实现优先级队列 您可以使用以下比较器: import java

我正在尝试创建一个队列,该队列可以接受类型为X的对象。每个对象X都有一个类型为int的变量,称为distance。如何创建一个优先级队列,该队列接受类型为X的对象,但根据每个对象的可变距离对其进行排序?

提供了一个优先级队列,该队列接受类型为X的对象。您可以使用此选项来订购物品。

提供了一个需要花费时间的。你可以用它来订购物品。

作业多少

看一看这张照片

简而言之,您可以使用堆实现优先级队列

作业多少

看一看这张照片


简而言之,您可以使用堆实现优先级队列

您可以使用以下比较器:

import java.util.Comparator;

public class XComparator implements Comparator<X>
{
    @Override
    public int compare(X m, X n)
    {

        if (m.distance < n.distance)
        {
            return -1;
        }
        if (m.distance > n.distance)
        {
            return 1;
        }
        return 0;
    }
}
import java.util.Comparator;
公共类XComparator实现了Comparator
{
@凌驾
公共整数比较(X m,X n)
{
如果(m.距离n.距离)
{
返回1;
}
返回0;
}
}
以下是创建优先级队列的方法:

int initialCapacity = 20;
Comparator<X> comparator = new XComparator();
PriorityQueue<X> queue = new PriorityQueue<X>(initialCapacity, comparator);
int initialCapacity=20;
比较器比较器=新的XComparator();
PriorityQueue=新的PriorityQueue(初始容量,比较器);

您可以使用以下比较器:

import java.util.Comparator;

public class XComparator implements Comparator<X>
{
    @Override
    public int compare(X m, X n)
    {

        if (m.distance < n.distance)
        {
            return -1;
        }
        if (m.distance > n.distance)
        {
            return 1;
        }
        return 0;
    }
}
import java.util.Comparator;
公共类XComparator实现了Comparator
{
@凌驾
公共整数比较(X m,X n)
{
如果(m.距离n.距离)
{
返回1;
}
返回0;
}
}
以下是创建优先级队列的方法:

int initialCapacity = 20;
Comparator<X> comparator = new XComparator();
PriorityQueue<X> queue = new PriorityQueue<X>(initialCapacity, comparator);
int initialCapacity=20;
比较器比较器=新的XComparator();
PriorityQueue=新的PriorityQueue(初始容量,比较器);