package com.iotek.myiterator;
public interface Iterator<T> {
public boolean hasNext();//判断是否有下一个元素
public T next();//获取下一个元素
public boolean hasNext();//判断是否有下一个元素
public T next();//获取下一个元素
}
package com.iotek.myiterator;
public interface List<T> {
public void add(T obj);//给容器添加元素
public T get(int index);//获取指定位置元素
public int size();//获取容器中的元素个数
public Iterator<T> iterator();//得到具体的迭代器对象
}
public void add(T obj);//给容器添加元素
public T get(int index);//获取指定位置元素
public int size();//获取容器中的元素个数
public Iterator<T> iterator();//得到具体的迭代器对象
}
package com.iotek.myiterator;
public class MyIterator<T> implements Iterator<T> {
private List<T> list=null;
private int index=0;//访问到容器中元素的当前下标
//创建一个迭代器对象时候接受被迭代的容器对象
public MyIterator(List<T> list){
this.list=list;
}
@Override
public boolean hasNext() {
return index<list.size();
}
private List<T> list=null;
private int index=0;//访问到容器中元素的当前下标
//创建一个迭代器对象时候接受被迭代的容器对象
public MyIterator(List<T> list){
this.list=list;
}
@Override
public boolean hasNext() {
return index<list.size();
}
@Override
public T next() {
return list.get(index++);
}
public T next() {
return list.get(index++);
}
}
package com.iotek.myiterator;
public class ArrayList<T> implements List<T> {
private Object [] obj=null;
private int index;
private int size;
public ArrayList(){
obj=new Object[10];
index=0;
size=0;
}
@Override
public void add(T obj) {
this.obj[index++]=obj;
size++;
}
@SuppressWarnings("unchecked")
@Override
public T get(int index) {
return (T)obj[index];
}
@Override
public int size() {
return size;
}
@Override
public Iterator<T> iterator() {
return new MyIterator<T>(this);
}
private Object [] obj=null;
private int index;
private int size;
public ArrayList(){
obj=new Object[10];
index=0;
size=0;
}
@Override
public void add(T obj) {
this.obj[index++]=obj;
size++;
}
@SuppressWarnings("unchecked")
@Override
public T get(int index) {
return (T)obj[index];
}
@Override
public int size() {
return size;
}
@Override
public Iterator<T> iterator() {
return new MyIterator<T>(this);
}
}
package com.iotek.myiterator;
public class Test {
public static void main(String[] args) {
ArrayList<String> nameList = new ArrayList<String>();
nameList.add("zhang shan");
nameList.add("lisi");
nameList.add("wang wu");
Iterator<String> it=nameList.iterator();
while(it.hasNext())
System.out.println(it.next());
ArrayList<String> nameList = new ArrayList<String>();
nameList.add("zhang shan");
nameList.add("lisi");
nameList.add("wang wu");
Iterator<String> it=nameList.iterator();
while(it.hasNext())
System.out.println(it.next());
}