docs: synchronized public Element remove(long index) {
      Element oldValue = get(index);
      if (oldValue  != null) {
        int bind = ((int)index & Integer.MAX_VALUE) % buckets.length;
        Element[] bucket = buckets[bind];
        int count = counts[bind];
        int i = 0;
        while (bucket[i].getIndex() != index)
          i++;
        System.arraycopy(bucket, i+1, bucket, i, count-(i+1));
        counts[bind] = count - 1;
        totalSize -= 1;
      }
      return oldValue;
    }