【发布时间】:2013-07-02 02:54:29
【问题描述】:
在ArrayList 中,添加操作是摊销操作。因此,在阅读StringBuffer 时,我想到了为什么StringBuffer 没有摊销。假设我在一个字符串缓冲区对象上使用附加操作,那么它应该能够在它的底层数组实现中添加那么多没有字符。但相反,我在源代码中发现我们有
System.arraycopy(chars, 0, value, count, chars.length);
在字符串缓冲区的追加操作中。所以我的问题是 StringBuffer 不能摊销,这样它就可以减少 O(N) 的复杂性吗?
【问题讨论】:
-
什么是“摊销操作”?
-
@Axel: This will help you.
标签: java arrays arraylist stringbuffer amortized-analysis