public class Notebook
{
int _size=0;
int _capacity=1;
String [] _s=new String[_capacity];
private void resize(int tocapacity){
String[]_t=new String[tocapacity];
for (int i=0;i<_size;i++){
_t[i]=_s[i];
}
_s=_t;
_capacity=tocapacity;
_size=Math.min(_size,tocapacity);
}
public void add(String s){
if(_size+1>_capacity){
resize(2*(_size+1));
}
_s[_size]=s;
_size++;
}
public void show_all(){
for(int i=0;i<_size;i++){
System.out.println(_s[i]);
}
}
public void show(){
System.out.println("_size=="+_size+" "+"_capacity=="+_capacity);
}
public static void main(String[] args) {
Notebook n1=new Notebook();
n1.show();
n1.add("去吃饭");
n1.add("去睡觉");
n1.show_all();
}
}
new完之后不用delete,同时 resize那里要注意转移元素
否则会

正确结果为:

本文介绍了一个简单的动态数组实现方法,通过调整内部容量来适应元素数量的增长。当数组满时,会创建一个更大容量的新数组,并将旧数组的内容复制到新数组中。
671

被折叠的 条评论
为什么被折叠?



