想写一个比较底层的数据结构,在预分配空间不足时会自动增加空间,用数组实现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的源代码没有看懂。
谢谢各位达人了哈。

解决方案 »

  1.   

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

  2.   

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