private object[] _array;          // TODO: Use Guava's MinMaxPriorityQueue to avoid having this array

        public DefaultComparatorTopTable(IComparer <T> comparator, int totalCount)
        {
            this._comparator = comparator;
            if (totalCount <= 0)
            {
                throw new System.ArgumentException("Top table size must be greater than 0");
            }
            this._totalCount = totalCount;

            _heap = new PriorityQueue <T>(Math.Min(totalCount, 1024), comparator.reversed());
        }