自定义泛型
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); } } }