code: 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;
    }
docs: For testing purposes (only) we can remove items from the HashedArray.  This is not
  very efficient, but is only used for testcases so probably doesn't matter too much.
  This method has been made synchronized for thread-safety, just in case anyone ever uses it