我正在尝试拥有一个可以接受X类对象的队列。这些对象X中的每一个都有一个名为distance的int类型的变量。如何创建一个优先级队列来获取X类型的对象,但是根据每个对象的可变距离对它们进行排序?
答案 0 :(得分:2)
PriorityQueue提供了constructor comparator。您可以使用它来订购商品。
答案 1 :(得分:1)
您可以使用以下比较器:
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;
}
}
以下是创建优先级队列的方法:
int initialCapacity = 20;
Comparator<X> comparator = new XComparator();
PriorityQueue<X> queue = new PriorityQueue<X>(initialCapacity, comparator);
答案 2 :(得分:0)