gpt4 book ai didi

java - 追加现有数组

转载 作者:行者123 更新时间:2023-11-28 01:09:18 27 4
gpt4 key购买 nike

我有一些关于数组的问题,我正在阅读一些关于 Java 的书,现在我正在阅读有关 StringBuilder 类的内容,有人告诉我这个类将我的字符串保存在具有当前容量的数组中,如果容量是不够,这门课自动增加容量 capacity = 2*(capacity + 1),我在学c和c++的时候,被教过如果空间不够就做同样的事情我的数组,但是 这个语句背后的逻辑是什么? 为什么我不能只找出我需要多少内存然后执行 capacity = capacity + homMuchDoINeed(),或者为什么不是 capacity = 4 * capacity,在此先感谢您的回答

最佳答案

why can't I just find out how much memory do I need and then to do

capacity = capacity + homMuchDoINeed()

因为每次插入都需要分配新的内存,所以单次插入需要线性时间,而 n 次插入需要二次方时间。另一方面,如果您按 x2 或 x1.5 等常数因子增长,则单次插入需要分摊常数时间,而 n 次插入需要线性时间。

Stephan T. Lavavej 在多个视频中对此进行了解释,例如 this one .

关于java - 追加现有数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291166/

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