Я пытаюсь понять TreeSet. Я создал объект «Сотрудник» и пытаюсь добавить объект «Сотрудник» в TreeSet. чтобы реализовать это, я создал класс sortName, который сортирует объекты сотрудников по имени. и я также написал метод equals (просто для понимания потока выполнения). Я читал, что в TreeSet для добавления элементов в какую-то сортировку мы должны реализовать интерфейс компаратора и перезаписать два метода (compare и equals), конечно, equals не является обязательным. Когда я пытаюсь запустить программу, она работает, я заметил, что метод equals никогда не вызывается, почему?
Давайте проведем сравнение между HashSet и TreeSet. в HashSet, когда хэш-код такой же, он проверяет метод равенства, иначе нет. Мне интересно узнать, как работает TreeSet? Может ли кто-нибудь привести пример, когда для TreeSet вызывается даже метод equals?
public int compare(Object Obj1, Object Obj2) {
System.out.println("compare");
if (Obj1 instanceof Employee19 && Obj2 instanceof Employee19) {
Employee19 emp1=(Employee19) Obj1;
Employee19 emp2=(Employee19) Obj2;
return emp1.sname.compareTo(emp2.sname);
}
return 0;
}
public boolean equals(Object obj){
System.out.println("equals");
return true;
}
Я даже проверил эту ссылку, но это было не то, что я искал... HashSet с двумя равными объектами?
TreeSet
использует не методequals()
, а методcompareTo
или методcompare()
, в зависимости от того, что применимо. - person Rohit Jain   schedule 14.03.2014