Сравнение исходного кода HashMap
и Hashtable
в jdk 1.6, я видел ниже коды внутри 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;
однако, в Hashtable, я видел ниже коды?
table = new Entry[initialCapacity];
public Hashtable() {
this(11, 0.75f);
}
поэтому мой вопрос: почему hashMap требует мощности 2 в качестве начальной емкости? и в то время как хэш-таблица выбирает 11 как начальную емкость по умолчанию? Я предполагаю, что это не имеет ничего общего с тем, что хеш-таблица является потокобезопасной и не допускает нулевой ключ или значения.
ТНХ.