我在解决这个问题时遇到了一些麻烦,这可能是因为我上次在 C++ 中做过这种事情,它略有不同,但我遇到了以下问题。
我必须编写一个自定义 ArrayList 类和一个关联的迭代器。我已经实现了如下所示的基本类结构:
public class MyArrayList<T> implements Iterable<T> {
protected T[] array;
private MyIterator<T> itr = new MyIterator<T>();
public MyArrayList() {
array = (T[]) new Object[10];
}
public MyArrayList(int i) {
array = (T[]) new Object[i];
}
@Override
public Iterator<T> iterator() {
return itr;
}
private class MyIterator<T> implements Iterator<T> {
@Override
public void remove() {
}
@Override
public T next() {
return null;
}
@Override
public boolean hasNext() {
return true;
}
}
}
显然我仍在添加代码,但我刚刚实现了现在需要的内容以消除所有错误消息。我现在尝试做的是将名为 itr 的迭代器链接到列表构造函数中数组中的第一个元素。
就像在带有指针的 C++ 中一样,我是否需要将迭代器指向集合中的第一项,迭代器的整个想法是它知道它是当前位置,但我不确定是否必须明确告诉它从哪里开始?希望这是有道理的谢谢。