I have this Player class which implements the Comparable interface. Then I have an ArrayList of Players. I\'m trying to use <
As long as you are implementing Comparable, you can make compareTo() consistent with equals() by also overriding equals() and hashCode(). This is particularly easy in this case, as you can simply delegate to String. Moreover, it's convenient if you ever need a Map containing instances of Player:
class Player implements Comparable {
private String username;
private String password;
// ...
@Override
public int compareTo(String name) {
return username.compareTo(name);
}
@Override
public boolean equals(Object obj) {
return obj instanceof Player
&& username.equals(((Player)obj).username);
}
@Override
public int hashCode() {
return username.hashCode();
}
}