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()