@Override public boolean equals(Object obj) { if (!(obj instanceof Pair)) return false; return a.equals(((Pair<?, ?>) obj).a) && b.equals(((Pair<?, ?>) obj).b); }