Я использую java.util.concurrent.ConcurrentSkipListSet
.Я определяю класс People
, чьи объекты хранятся в ConcurrentSkipListSet<People>
, Comparator<People>
, сравнивающем Age
из People
, и этот объект ConcurrentSkipListSet<People>
создается с помощью этого Comparator<People>
.
Если у меня два People
объекта с одинаковым Age
, например a.Age.equals(b.Age)
, что произойдет?И a
, и b
в ConcurrentSkipListSet
?Или только один?
Требуется, чтобы такой Comparator
был в соответствии с равным , но в моем случае a.Age.equals(b.Age)
определенно не означает a.equals(b)
.Я просто хочу отсортировать People
объектов по Age
.
Теперь мой компаратор реализован следующим образом:
class ComparatorHSD implements Comparator<People> {
public int compare(People s0, People s1) {
int rv = 0;
if (s0.Age > s1.Age) {
rv = 1;
} else if (s0.Age < s1.Age) rv = -1;
return rv;
}
Если я не определю rv = 0
, программа кажетсязастрял где-то и не кончится.Так я должен это определить?Почему?