List list = new ArrayList;
...//添加一些元素
for(String s:list){
System.out.println(s);
}
这是如何实现的?
在for语句中能这样用的的类必须实现Iterable接口
下面实现这一功能的例子
package com.iterable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class MyList<E> implements Iterable<E>{
List<E> list = new ArrayList<E>();
public void add(E e){
list.add(e);
}
@Override
public Iterator<E> iterator() {
return new InnerIterator();
}
private class InnerIterator implements Iterator{
int index = 0;
@Override
public boolean hasNext() {
return index<list.size();
}
@Override
public E next() {
E e = list.get(index);
index++;
return e;
}
@Override
public void remove() {
}
}
}