gpt4 book ai didi

java - 减少数组的大小(通过创建新数组) - arrayList 是如何做到的?

转载 作者:行者123 更新时间:2023-12-01 17:21:58 25 4
gpt4 key购买 nike

在我的一个类(class)中,我有一个像这样的方法:

public void setArray(int size){

myArray = new int[size] //myArray is declared already

}

现在,如果我调用它并传入 500,如下所示:

setArray(500);

然后,稍后在我的应用程序中,我只需要一个包含 50 个元素的数组,此时,我只需再次调用它并传入 50 作为我的参数。

这个数组在我的应用程序中被多次引用,我想知道 CG 是否会收集旧的数组?

我知道我真的应该使用 arrayList,不幸的是,这将是一项重大任务,因为我的代码现在有数千行和 18 个类的大小(所以我想我已经为下一个项目学习了!)

arrayList 是如何在“幕后”实现这一点的?我可以模拟 arrayList 行为吗?它只是像我一样创建一个新数组吗?

最佳答案

您正在描述dynamic array的行为

实现此数据结构的最简单方法是在数组已满或低于某个阈值(例如,仅占用 1/4 的单元格)时创建一个新数组,并将现有值复制到新数组中。

如果你想知道它在 java 中是如何完成的,以及正在进行哪些优化 - 你可能想看看 ArrayList class source .

关于java - 减少数组的大小(通过创建新数组) - arrayList 是如何做到的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063706/

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