Я действительно запутался в реализации метода hashcode() и equals(). Код для вставки в наш каталог.Что действительно происходит внутри методов equals(), hashcode() и compare()?
class Employee {
int id;
String name;
public Employee(int id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public int hashCode() {
final int prime = 3;
int result = 1;
result = (prime * result) + id;
result = (prime * result) + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
Employee other = (Employee) obj;
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
[править 1] Doubt1: что каждый Comparision на самом деле означает?
Теперь я реализовал интерфейс компаратора и его метод.
class EmpNameComparator implements Comparator<Employee> {
@Override
public int compare(Employee a, Employee b) {
return a.name.compareToIgnoreCase(b.name);
}
}
[править 2] Doubt2: он собирается сравнить два adjusent объекты из списка <> или что-то еще происходит, что он делает внутри?
«Я действительно смущен» - это состояние ума, а не вопрос. Если вы хотите помочь здесь, вам нужно сформулировать точный вопрос. Если вы не можете этого сделать, это не сайт для вас. Вы могли бы лучше посоветоваться с книгой и вашим учителем. – Raedwald
Пожалуйста, разместите часть кода, в котором вы используете списки. – Berger
Я не использовал его нигде, это просто для понимания цели. учитывая, что я выполняю employeeList.sort(); как действительно сравнивает() ведет себя? – piechuckerr