java迭代器之泛型

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

}

猜你喜欢

转载自blog.csdn.net/zhang1996922/article/details/79392396
今日推荐