Вам нужно использовать метод compareTo()
для Strings.
return this.getName().compareTo(i.getName());
Это должно делать то, что вы хотите.
Обычно при реализации интерфейса Comparable
вы просто агрегируете результаты использования других Comparable
членов класса.
Ниже приведена довольно типичная реализация метода compareTo()
:
class Car implements Comparable<Car> {
int year;
String make, model;
public int compareTo(Car other) {
if (!this.make.equalsIgnoreCase(other.make))
return this.make.compareTo(other.make);
if (!this.model.equalsIgnoreCase(other.model))
return this.model.compareTo(other.model);
return this.year - other.year;
}
}