Por que initialCapacity do Hashtable é 11 enquanto o DEFAULT_INITIAL_CAPACITY no HashMap é 16 e requer uma potência de 2
Comparação deHashMap
eHashtable
código fonte no jdk 1.6, vi os códigos abaixo no HashMap
/**
* The default initial capacity - MUST be a power of two.
*/
static final int DEFAULT_INITIAL_CAPACITY = 16;
int capacity = 1;
while (capacity < initialCapacity)
capacity <<= 1;
o entanto, no Hashtable, vi os códigos abaix
table = new Entry[initialCapacity];
public Hashtable() {
this(11, 0.75f);
}
Então minha pergunta é: por que o hashMap requer uma potência de 2 como capacidade inicial? e enquanto a hashtable escolhe 11 como a capacidade inicial padrão? Presumo que isso não tenha nada a ver com a coisa que a hashtable é segura para threads e não permite valores ou chave nul
valeu