Пример #1
0
        public CacheHashMap(int initialCapacity, float loadFactor, ICacheMapEntryTypeProvider cacheMapEntryTypeProvider)
        {
            this.loadFactor = loadFactor;
            this.cacheMapEntryTypeProvider = cacheMapEntryTypeProvider;

            if (initialCapacity < 0)
            {
                throw new ArgumentException("Illegal initial capacity: " + initialCapacity);
            }
            if (initialCapacity > MAXIMUM_CAPACITY)
            {
                initialCapacity = MAXIMUM_CAPACITY;
            }
            if (loadFactor <= 0 || Single.IsNaN(loadFactor))
            {
                throw new ArgumentException("Illegal load factor: " + loadFactor);
            }

            // Find a power of 2 >= initialCapacity
            int capacity = 1;

            while (capacity < initialCapacity)
            {
                capacity <<= 1;
            }

            threshold = (int)(capacity * loadFactor);
            table     = CreateTable(capacity);
        }
Пример #2
0
 public CacheHashMap(ICacheMapEntryTypeProvider cacheMapEntryTypeProvider)
     : this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, cacheMapEntryTypeProvider)
 {
     // Intended blank
 }