Dropped cycle check on equals() and hashCode() in favor of a more
lightweight implementation. Same behavior as
java.util.AbstractList.equals for example.