package xintexing;
import java.util.Iterator;
import org.omg.PortableInterceptor.Interceptor;
public class Dongzu<T> implements Iterable <T>{
//内部是通过数组来实现的
Object[]values;
int size=0;
//元素个数
//构造方法
public Dongzu(int i){
if(i<1){
throw new RuntimeException("初始长度必须大于0");
}
values=new Object[i];
}
//无参构造方法
public Dongzu(){
this(10);
}
//增加一个元素
public void add(T t){
//空间是否够用
extendSpace();
values[size++]=t;
}
//扩展空间
public void extendSpace(){
if(values.length==size){
//扩展
Object[] o2=new Object[size*3/2+1];
System.arraycopy(values, 0, o2, 0, values.length);
values=o2;
}
}
//删除一个元素
public void remove(int index){
//假装有删除
}
//数组长度
public int size(){
return size;
}
@SuppressWarnings("unchecked")
public T get(int i){
if(i<0 ||i>size-1){
throw new RuntimeException("数组下标越界");
}
return (T)values[i];
}
@Override
public Iterator<T> iterator() {
// TODO Auto-generated method stub
return null;
}
}
package xintexing;
public class Test {
public static void main(String[] args) {
Dongzu <Integer>d=new Dongzu<Integer>();
d.add(1);
d.add(2);
d.add(0);
System.out.println(d.get(1));
for(Integer i:d){
System.out.println(i);
}
}
}