@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Tuple tuple = (Tuple) o; if (v1 != null ? !v1.equals(tuple.v1) : tuple.v1 != null) return false; if (v2 != null ? !v2.equals(tuple.v2) : tuple.v2 != null) return false; return true; }
@Override public boolean contains(Object o) { if (!(o instanceof Entry)) { return false; } Entry<?, ?> entry = (Entry<?, ?>) o; Object entryKey = entry.getKey(); Object entryValue = entry.getValue(); V2 mapValue = TransformingMap.this.get(entryKey); if (mapValue != null) { return mapValue.equals(entryValue); } return entryValue == null && containsKey(entryKey); }