RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

请教高手,java中如何为一个数组重新分配堆内存

来源: 作者: 时间:2008-03-11 点击:

想写一个比较底层的数据结构,在预分配空间不足时会自动增加空间,用数组实现

public class VectorArray <T>  implements Vector <T>  {
private int increment;
private int capacity;
private int Size = 0;
private T[] s;

VectorArray(int capacity,int increment) {
s = (T[]) new Object[this.capacity = capacity];
this.increment=increment;
}
}

要求当s空间满的时候,重新分配s数组的大小,并保持s原来数组中的对象。不要使用java本身提供的函数,我就是想看下java本身是怎么实现的,java的源代码没有看懂。
谢谢各位达人了哈。

不大明白该怎么办。

在空间不足的时候,再声明一个容量更大的数组,把原来的内容COPY过去。
我只能想到这种办法。
我记的好像ArrayList也是这么做的吧?

恩,感谢楼上的,今天好好看了一下Java源代码,确实是重新分配的,然后再copy过去,
不过这样的会涉及整个数组的拷贝,如果数组很大而数组容量不够又频繁发生的话,感觉T(n)就会很大,不知道有没有更优化的方法。

Create By Any-Extract(WL-AE) 数据挖掘研究院

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?