Since we’re expanding on various oddities… With J2SE Enum hashCode() returns the identity hash code on Android hashCode() returns the ordinal + hash code of the String name of the enum. Doh! If you try and mix a lot of Enum with other objects returning the identity hash code on Android collisions potentially occur. Also if you have two Enum classes with a duplicate name in the same position the hash codes collide. Doh!
On Android:
@Override
public final int hashCode() {
return ordinal + (name == null ? 0 : name.hashCode());
}