public void clear() {
      long delta = 0L; // negative number of deletions
      int i = 0;
      Node<V>[] tab = table;
      while (tab != null && i < tab.length) {
          int fh;
          Node<V> f = tabAt(tab, i);
        if (f == null) {
          ++i;
        }
        else if ((fh = f.hash) == MOVED) {
          tab = helpTransfer(tab, f);
          i = 0; // restart
        }
        else {
          synchronized (f) {
            if (tabAt(tab, i) == f) {
              Node<V> p = (fh >= 0 ? f :
                           (f instanceof TreeBin) ?
                           ((TreeBin<V>)f).first : null);
              while (p != null) {
                --delta;
                p = p.next;
              }
              setTabAt(tab, i++, null);
            }
          }
        }
      }
    if (delta != 0L) {
      addCount(delta, -1);
    }
  }
public void clear()