【发布时间】:2017-02-06 19:21:29
【问题描述】:
我有 Coordinates 类,我想让 Coordinates 对象具有可比性。
public class Coordinates implements Comparable<Coordinates> {
private int row;
private int column;
这个想法是将 Coordinates 对象插入 PriorityQueue 并对其进行排序。
@Override
public int compareTo(Coordinates o) {
if (row < o.row) {
return row;
}
if (row > o.row) {
return o.row;
}
if (row == o.row) {
if (column < o.column) {
return column;
}
if (column > o.column) {
return o.column;
}
}
// return 0;
}
这是我的尝试,但我不确定我究竟应该返回什么以及如何返回它。我希望我的最小坐标具有最高优先级。而且我写的函数仍然需要一个返回值——注释行
【问题讨论】:
-
什么意义上的最小?比如,
(1, 2)与(2, 1)相比应该如何? -
您可以计算每个对象与
(0, 0)的距离,然后用它来比较。 -
我希望 0,5 的优先级高于 1,5,而 1,0 的优先级高于 1,3
-
compareTo 应该返回 -1 表示大于,0 表示等于,+1 表示小于。值的负数或正数无关紧要。
-
我认为@JasonPer 应该告诉我们他真正想在这里做什么......
标签: java coordinates priority-queue comparator