@Override
    public final boolean equals(Object o) {
      if (!(o instanceof Entry<?> e)) return false;
      if (e.getKey() != key) return false;
      Object v = e.getValue();
      Object u = val;
      return v == u || v.equals(u);
    }
@Override
    public final boolean equals(Object o)