code: private final void quickSelectAndRebuild() {
      final int arrLongs = 1 << lgArrLongs_;
  
      final int pivot = (1 << lgNomLongs_) + 1; // pivot for QS
  
      thetaLong_ = selectExcludingZeros(cache_, curCount_, pivot); //messes up the cache_
  
      // now we rebuild to clean up dirty data, update count, reconfigure as a hash table
      final long[] tgtArr = new long[arrLongs];
      curCount_ = HashOperations.hashArrayInsert(cache_, tgtArr, lgArrLongs_, thetaLong_);
      cache_ = tgtArr;
      //hashTableThreshold stays the same
    }
docs: array stays the same size. Changes theta and thus count