public ObjRefStoreSet(int initialCapacity, float loadFactor, IObjRefStoreEntryProvider objRefStoreEntryProvider) { this.loadFactor = loadFactor; this.objRefStoreEntryProvider = objRefStoreEntryProvider; 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); }
public ObjRefStoreSet(IObjRefStoreEntryProvider objRefStoreEntryProvider) : this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, objRefStoreEntryProvider) { }