@Override public X2<V0, V1> remove(Object o) { if (containsKey(o)) { return Tuple.X2(m0.remove(o), m1.remove(o)); } else { m0.remove(o); m1.remove(o); return null; } }
@Override public V remove(Object o) { if (!(o instanceof U2)) { return null; } @SuppressWarnings("unchecked") U2<K0, K1> u = (U2<K0, K1>)o; return (u == null)? null: (u.type == 0)? m0.remove(u.getT0()): m1.remove(u.getT1()); }