Java 如何在listIterator()实现中使用超类迭代器()?

Java 如何在listIterator()实现中使用超类迭代器()?,java,iterator,implementation,extending,listiterator,Java,Iterator,Implementation,Extending,Listiterator,我有两个类:MyArrayCollection(实现集合)和MyArrayList(扩展MyArrayCollection并实现列表)。第一个是迭代器()。如何在第二个类的listIterator()实现中使用它?我丑陋的尝试: class MyArrayCollection implements Collection<Integer> { ... class CIterator implements Iterator<Integer> {

我有两个类:MyArrayCollection(实现集合)和MyArrayList(扩展MyArrayCollection并实现列表)。第一个是迭代器()。如何在第二个类的listIterator()实现中使用它?我丑陋的尝试:

class MyArrayCollection implements Collection<Integer> {
    ...
    class CIterator implements Iterator<Integer> {
        @Override
        public boolean hasNext() {
            return pos < size;
        }

        @Override
        public Integer next() {
            return array[++pos];
        }
    }

    @Override
    public Iterator<Integer> iterator() {
        return new CIterator();
    }
    ...
}

class MyArrayList extends MyArrayCollection implements List<Integer> {
    ...
    class CListIterator extends CIterator implements ListIterator<Integer> {
        ...
    }

    @Override
    public ListIterator<Integer> listIterator() {
        return new CListIterator();
    }
    ...
}
类MyArrayCollection实现收集{
...
类CIterator实现迭代器{
@凌驾
公共布尔hasNext(){
返回pos
我不确定是否理解您的问题,但我想您应该使用从
Iterator()
方法获取的
Iterator
实例。当然可以,对于像这样的Instance:

class CListIterator extends CIterator implements ListIterator<Integer>
{
  private final Iterator<Integer> iterator;
  public CListIterator() {
    super();
    this.iterator = iterator();
  }

  ...
}
类Clisiterator扩展了CIterator实现了ListIterator
{
私有最终迭代器;
公共客户机(){
超级();
this.iterator=iterator();
}
...
}
然后可以使用该迭代器实例实现
ListInteger
中的方法。但问题是您需要实现这些功能:

  • 向后迭代
  • 在任意点获取索引
  • 在任意点添加新值
  • 在该点设置一个新值

迭代器实例在这方面可能帮不了你多少忙。例如,
ArrayList.listIterator
iterator根本不使用
ArrayList.iterator

因此,如果我正确理解您的问题,您希望在listIterator方法中返回CIterator,但您不能?