public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; @SuppressWarnings("rawtypes") Tuple other = (Tuple) obj; if (first == null) { if (other.first != null) return false; } else if (!first.equals(other.first)) return false; return true; }