假设容量为10,我在arraylist中添加5个元素。它们在内存中的大小是5个元素还是10个元素?
gmxoilav1#
javadoc声明:每个 ArrayList 示例有容量。容量是用于存储列表中元素的数组的大小。它总是至少和列表大小一样大。当元素添加到 ArrayList ,其容量自动增长。除了添加一个元素具有固定的摊余时间成本这一事实之外,增长策略的细节没有被指定。基于以上:当环境中的元素较少时会发生什么 ArrayList 比它的容量还大?假设后备阵列的大小是“容量”,那么阵列中将有未使用的插槽。(该实现确保那些未使用的插槽包含 null 以避免任何内存泄漏。)假设容量是10,我加了5个元素 ArrayList . 它们在内存中的大小是5个元素还是10个元素?大小将是10个对象引用的大小,因为 ArrayList 保存对对象的引用。。。而不是实际的元素对象本身。
ArrayList
null
1条答案
按热度按时间gmxoilav1#
javadoc声明:
每个
ArrayList
示例有容量。容量是用于存储列表中元素的数组的大小。它总是至少和列表大小一样大。当元素添加到ArrayList
,其容量自动增长。除了添加一个元素具有固定的摊余时间成本这一事实之外,增长策略的细节没有被指定。基于以上:
当环境中的元素较少时会发生什么
ArrayList
比它的容量还大?假设后备阵列的大小是“容量”,那么阵列中将有未使用的插槽。
(该实现确保那些未使用的插槽包含
null
以避免任何内存泄漏。)假设容量是10,我加了5个元素
ArrayList
. 它们在内存中的大小是5个元素还是10个元素?大小将是10个对象引用的大小,因为
ArrayList
保存对对象的引用。。。而不是实际的元素对象本身。