У меня есть класс Coordinates, и я хочу сделать объект Coordinates сопоставимым.Java Override CompareTo метод
public class Coordinates implements Comparable<Coordinates> {
private int row;
private int column;
Идея состоит в том, чтобы вставлять объекты координат в 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)' для каждого объекта, а затем использовать его для сравнения. – ByeBye
Я хочу, чтобы 0,5 имел наивысший приоритет, чем 1,5 и 1,0, чтобы иметь более высокий приоритет, чем 1,3 –