为什么ArrayList的默认容量是10?
- 论坛
- 为什么ArrayList的默认容量是10?
10 浏览
为什么ArrayList的默认容量是10?
我看了ArrayList的Java文档,发现ArrayList的初始容量是10。
/** * 构造一个初始容量为十的空列表。 */ public ArrayList() { this(10); }
如果初始容量是2的幂次方的话,这个设计会更有意义,但为什么是10呢?
我还查了HashMap的初始容量,它是16,这个设计是有道理的。
/** * 默认初始容量 - 必须是2的幂次方。 */ static final int DEFAULT_INITIAL_CAPACITY = 16; /** * 使用默认的初始容量(16)和默认的装载因子(0.75)构造一个空的HashMap。 */ public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR); table = new Entry[DEFAULT_INITIAL_CAPACITY]; init(); }
有什么特殊原因使得选择了数字10吗?