@Override
  public boolean equals(Object o) {
    if (o != this) {
      if (!(o instanceof ConcurrentLongObjectMap)) {
        return false;
      }
      ConcurrentLongObjectMap<?> m = (ConcurrentLongObjectMap)o;
      Node<V>[] t;
      int f = (t = table) == null ? 0 : t.length;
      Traverser<V> it = new Traverser<>(t, f, 0, f);
      for (Node<V> p; (p = it.advance()) != null; ) {
        V val = p.val;
        Object v = m.get(p.key);
        if (v == null || (v != val && !v.equals(val))) {
          return false;
        }
      }
      for (LongEntry<?> e : m.entries()) {
        long mk = e.getKey();
        Object mv = e.getValue();
        Object v = get(mk);
        if (v == null || mv != v && !mv.equals(v)) {
          return false;
        }
      }
    }
    return true;
  }
@Override
  public boolean equals(Object o)