boolean (Object o) { if (o != this) { if (!(o instanceof ConcurrentIntObjectMap)) { return false; } ConcurrentIntObjectMap<?> m = (ConcurrentIntObjectMap)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 (Entry<?> e : m.entrySet()) { int mk = e.getKey(); Object mv = e.getValue(); Object v = get(mk); if (v == null || mv != v && !mv.equals(v)) { return false; } } } return true; }