自定义泛型

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);
}


    }

}

 

posted @ 2017-05-10 15:22  苏轼的红烧肉  阅读(99)  评论(0编辑  收藏  举报