版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guanzhengyinqin/article/details/78623062
直接上代码:
package bean;
import java.util.Iterator;
public class ListDemo<T> implements Iterable<T> {
private Object[] obj;
private int size;
private Iterator<T> iterator;
public int getSize() {
return size+1;
}
public ListDemo(){
iterator = new IteratorImpl();
size = 0;
obj = new Object[10];
}
public void addItem(Object o){
if(size%10==9){
Object[] objTemp = obj;
obj = new Object[objTemp.length+10];
for(int i=0;i<objTemp.length;++i){
obj[i] = objTemp[i];
}
}
obj[size] = o;
size++;
}
public void remove(int index){
obj[index] = null;
size--;
}
public Iterator<T> getIterator(){
return iterator;
}
@SuppressWarnings("unchecked")
public T getObject(int index){
if(index>size){
System.err.println("超出范围!");
throw new IndexOutOfBoundsException("超出范围!");
}
return (T) obj[index-1];
}
@Override
public Iterator<T> iterator() {
// TODO Auto-generated method stub
return iterator;
}
private class IteratorImpl implements Iterator<T>{
private int index = 0;
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
return index != size;
}
@SuppressWarnings("unchecked")
@Override
public T next() {
// TODO Auto-generated method stub
return (T)obj[index++];
}
}
}