Вы можете использовать следующий компаратор:
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);