package simple;
import java.util.Arrays;
import java.util.Iterator;
/**
* 迭代器原理:中級(泛型)
* @author Lenovo
*
*/
public class Deeptextlist<E>
implements Iterator<E>
{
public Object elemen[]=new Object[5];
public int size=0;
private int course=-1;
public int size() {
return this.size;
}**重點內容**
//添加元素
public void add(E ele) {
if(this.size==elemen.length) {//對數組進行擴容
elemen=Arrays.copyOf(elemen,elemen.length+5);
}
elemen[size]=ele;
size++;
}
public Iterator<E> iterator() {
return new Iterator<E>() {//創建Iterator迭代器接口實現類(沒有名稱)的對象
private int course=-1;
public E next() {
course++;
return (E)elemen[course];
}
public void remove() {
//移動數組元素
System.arraycopy(elemen, course+1, elemen, course, size-(course+1));
//實際大小
size--;
//指針回位
course--;
}
@Override
public boolean hasNext() {
return course+1<size;
}
};
}
public static void main(String[] args) {
Deeptextlist<Integer> lDeeptextlist=new Deeptextlist<Integer>();
lDeeptextlist.add(1);
lDeeptextlist.add(2);
Iterator iterator=lDeeptextlist.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
return false;
}
@Override
public E next() {
// TODO Auto-generated method stub
return null;
}
}