gpt4 book ai didi

java - ArrayList.clear() 是否将数组的大小调整为尽可能小的大小?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:06 24 4
gpt4 key购买 nike

如果我理解 ArrayLists,它们由一个数组支持,该数组在其满时自动调整大小。在调用 clear() 时,ArrayList 是否已调整为尽可能小的数组大小?

最佳答案

不,不是,这是一个需要牢记的问题。假设 ArrayList 的内部 Object[] 增长到 1000000 个元素。现在调用 ArrayList.clear()。这会将所有 1000000 个元素设置为 null,并将内部大小设置为 0。将 1000000 置为空是一项耗时的操作,ArrayList 仍将占用堆上的 1000000 x 4 字节 Object[]。您可以在 clear() 之后调用 ArrayList.trimToSize() 但有一个问题 - 您首先清除了 1000000 个元素,然后将它们丢弃。在这种情况下,一个更好的解决方案是重新创建您的 ArrayList - new ArrayList()。

关于java - ArrayList.clear() 是否将数组的大小调整为尽可能小的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com