ArrayList 和 HashMap 的默认大小 ?
参考答案:
在 Java 中,ArrayList
和 HashMap
的默认大小并不是固定的常数,而是基于其内部实现和性能优化来设定的。
- ArrayList 的默认大小:
ArrayList
的默认大小通常是通过其构造函数来设定的。如果你使用无参构造函数创建一个新的 ArrayList
,那么它的初始容量(capacity)是 10。这意味着,当你向这个列表中添加元素时,它最初可以容纳 10 个元素,而不需要重新分配内部数组。但是,当元素数量超过当前容量时,ArrayList
会自动增长其容量,通常是通过将当前容量增加 50% 来实现的。
示例:
ArrayList<String> list = new ArrayList<>(); // 默认容量是 10
- HashMap 的默认大小:
HashMap
的默认大小也是通过其构造函数来设定的。如果你使用无参构造函数创建一个新的 HashMap
,那么它的初始容量(capacity)和加载因子(load factor)是有默认值的。初始容量默认是 16,加载因子默认是 0.75。加载因子用于确定何时调整 HashMap
的容量(即重新哈希和重新分配内部数组)。当 HashMap
中的元素数量超过 容量 * 加载因子
时,HashMap
会进行扩容,通常是容量翻倍。
示例:
HashMap<String, Integer> map = new HashMap<>(); // 默认容量是 16,加载因子是 0.75
需要注意的是,虽然这些是 ArrayList
和 HashMap
的默认大小,但在实际应用中,你可能需要根据预期的数据量和性能要求来选择合适的初始容量和加载因子。通过合理地设置这些参数,你可以优化内存使用和性能。