Я видел Java документ для ArrayList и обнаружил, что начальная мощность ArrayList является 10.Почему емкость ArrayList 10 по умолчанию?
/**
* Constructs an empty list with an initial capacity of ten.
*/
public ArrayList() {
this(10);
}
Я думаю, что это имело бы смысл, если бы любая степень 2, но почему 10?
Я также проверил начальную емкость HashMap, и это имеет смысл.
/**
* The default initial capacity - MUST be a power of two.
*/
static final int DEFAULT_INITIAL_CAPACITY = 16;
/**
* Constructs an empty <tt>HashMap</tt> with the default initial capacity
* (16) and the default load factor (0.75).
*/
public HashMap() {
this.loadFactor = DEFAULT_LOAD_FACTOR;
threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR);
table = new Entry[DEFAULT_INITIAL_CAPACITY];
init();
}
Есть ли какая-либо причина позади номера 10?
>>> _it может сделать это, если бы это было сколько угодно силы 2_ почему? –
Я думаю, что это восходит к доминирующей форме жизни в cs, которая, кажется, имеет два манипулятора с 5 цифрами на каждом.Те, которые используются для подсчета в первые дни вычислений. Поэтому они предпочитают полномочия 10 для всех видов вещей. –
10 - это начальная емкость списка массивов, а не размер. Начальный размер всегда равен 0. – BOSS