I have this Player
class which implements the Comparable
interface. Then I have an ArrayList
of Player
s. 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();
}
}