java中自己实现一个可以用foreach循环的类 Iterable,Iterator
要实现一个可以用可以用foreach循环的类就必须实现Iterable这个几口,接口中重写一个iterator方法,这个方法返回一个 Iterator<E>接口。
代码如下:
public class IterTest implements Iterable<String> {
//存储内容的数组
private Object[] obj=new Object[1];
//记录添加元素的个数
private int size;
//记录当前元素的下标
private int current=0;
//添加元素
public void add(String str){
//判断数组是否已经满了如果满了扩张数组
if(size==obj.length){
//扩张数组到一个新长度
obj=Arrays.copyOf(obj, obj.length+obj.length<<1);
}
obj[size++]=str;
}
//重写iterator方法
public Iterator<String> iterator() {
定义实现了Iterator的内部类
class iter implements Iterator<String>
{
@Override
public boolean hasNext() {
// 判断当前指针是否小于实际大小
if(current<size){
return true;
}
return false;
}
@Override
public String next() {
// 返回当前元素,并把当前下标前移
return obj[current++].toString();
}
@Override
public void remove() {
// TODO Auto-generated method stub
}
}
// 返回自定义的Iteraror子类
return new iter();
}
}

浙公网安备 33010602011771号