用Java为我自己的数组列表类编写迭代器

用Java为我自己的数组列表类编写迭代器,java,iterator,Java,Iterator,我正在为自己的array list类编写一个迭代器方法,但是,当我尝试测试该类时,它说foreach循环不适用于MyArrayList。谁能帮我解决哪里出了问题 类本身使用对象数组和必要的方法来充当arraylist(添加、删除、获取等) 下面是类构造函数和我的迭代器类: public class MyArrayList { public Object[] arrayList = new Object[5]; int length1 = 5; public MyArrayList() { }

我正在为自己的array list类编写一个迭代器方法,但是,当我尝试测试该类时,它说foreach循环不适用于MyArrayList。谁能帮我解决哪里出了问题

类本身使用对象数组和必要的方法来充当arraylist(添加、删除、获取等)

下面是类构造函数和我的迭代器类:

public class MyArrayList {
public Object[] arrayList = new Object[5];
int length1 = 5;

public MyArrayList() {
}

public MyArrayList(Object[] arrayList) {
    this.arrayList = arrayList;
    length1 = arrayList.length;
}

public ArrayListIterator iterator(){
    return new ArrayListIterator(this);
}

class ArrayListIterator<MyArrayList> implements Iterator<Object> {
    private Object[] arrayListIterable;
    private int count = 0;

    public ArrayListIterator(Object[] x){
        arrayListIterable = x;
    }

    public ArrayListIterator(MyArrayList myArrayList) {

    }

    public boolean hasNext(){
        if(count < arrayList.length){
            return true;
        }else{
            return false;
        }
    }
    public Object next(){
        int x = count;
        count++;
        return arrayListIterable[x];
    }
}
公共类MyArrayList{
公共对象[]arrayList=新对象[5];
int长度1=5;
公共MyArrayList(){
}
公共MyArrayList(对象[]arrayList){
this.arrayList=arrayList;
length1=arrayList.length;
}
公共数组迭代器(){
返回新的阵列拼接器(此);
}
类ArrayListIterator实现迭代器{
私有对象[]数组可编辑;
私有整数计数=0;
公共数组标识符(对象[]x){
arraylistitable=x;
}
公共阵列列表编辑器(MyArrayList MyArrayList){
}
公共布尔hasNext(){
if(计数<数组列表长度){
返回true;
}否则{
返回false;
}
}
公共对象下一个(){
int x=计数;
计数++;
返回数组可补[x];
}
}

您的
MyArrayList
类必须实现接口

检查javadoc中的
Iterable

实现此接口允许对象成为“for each loop”语句的目标


这就是为什么当您认为您正在重写或实现一个方法时,总是使用@Override标记是一个好的做法——然后编译器会告诉您是否错了我已经按照BarrySW19的建议添加了@Overide tage。但是,对于这个导入语句,我不确定我是在使用我自己的迭代器还是在使用Java提供的迭代器?我已经阅读了关于迭代器和Iterable的Oracle文档,但我仍然有点困惑。提前谢谢