У меня есть объект, Test
, который имеет два свойства, double x
и double y
.Я хочу добавить эти объекты в SortedSet
, сохраняя сортировку набора в порядке ASC по x 1005 *.Если два экземпляра Test
имеют одинаковые значения x, я хочу, чтобы они были отсортированы в пределах набора по их значениям y.
Я думал, что следующее поможет:
private SortedSet<Test> tests = new TreeSet<Test>(new Comparator<Test>() {
@Override
public int compare(Test o1, Test o2) {
if (o1.getXpos() < o2.getXpos()) {
return -1;
}
if (o1.getXpos() > o2.getXpos()) {
return 1;
}
if (o1.getXpos() == o2.getXpos()) {
if (o1.getYpos() < o2.getYpos()) {
return -1;
}
if (o1.getYpos() > o2.getYpos()) {
return 1;
}
if (o1.getYpos() == o2.getYpos()) {
return 0;
}
}
return 0;
}
});
Вместо этого это заказывает фактические значения x и y;т.е.
testA: x = 200, y = 200,
testB: x = 200, y = 400
После вставки в tests
:
testA: x = 200, y = 200,
testB: x = 400, y = 200
Вместо экземпляров в tests
.