Nil*_*cha 3 java collections hashset
当HashSet的初始容量(即16)被填满时,如何计算新容量?公式是什么?
例如:随着数组列表的大小增加公式New capacity =(current capacity*3/2)+ 1
对于向量,它是新容量=(当前容量*2)
AHashSet由 a 支持HashMap。根据grepcode,每次需要增加时,大小都会加倍。以下是该方法的代码addEntry,该方法是实际在表中添加新条目时调用的内部方法。
void addEntry(int hash, K key, V value, int bucketIndex) {
Entry<K,V> e = table[bucketIndex];
table[bucketIndex] = new Entry<K,V>(hash, key, value, e);
if (size++ >= threshold)
resize(2 * table.length);
}
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个实现细节,可能随时更改。
另请注意,如果您需要的信息不在 Javadoc(即实现细节)中,当您对某些库类的工作原理有疑问时,查看源代码始终应该是您的首要资源。