在java中要想使用for(object o : object)的形式遍历的时候 该对象必须实现iterable接口
该接口里有iterator的方法
该方法要求返回一个iterator对象因此我就建了个内部类重写了里面的hasNext()和next()方法 废话不多说代码如下:
---------------------------------MyList.java-------------------------------------------
package a3;
import java.util.ArrayList;
import java.util.Iterator;
public class MyList<T> implements Iterable<T>{
private int[] str=new int[10];
int count=0;
private class MyInteratir implements Iterator{
int count=0;
public boolean hasNext(){
if(count<(str.length-1)){
if(str[count+1]==0)
return false;
return true;
}
if(count==str.length-1){
if(str[count]==0)
return false;
return true;
}
return false;
}
public Integer next(){
return get(count++);
}
public void remove(){}
}
public void add(int item){
if(str.length>count){
str[count]=item;
count++;
}else{
int[] temp=new int[str.length+10];
for(int i=0;i<str.length;i++){
temp[i]=str[i];
}
temp[count++]=item;
str=temp;
}
}
public int get(int index){
return str[index];
}
@Override
public Iterator<T> iterator() {
// TODO Auto-generated method stub
return new MyInteratir();
}
}
------------------------MyListDemo.java-------------------------------
package a3;
import java.awt.List;
import java.util.ArrayList;
import java.util.Iterator;
public class MyListDemo {
public static void main(String[] args){
MyList<Integer> ml= new MyList();
for(int i=0;i<100;i++){
ml.add(i);
}
for(Integer o: ml){
System.out.println(o);
}
}
}