gpt4 book ai didi

java - 如何在 listIterator() 实现中使用父类(super class) iterator() ?

转载 作者:太空宇宙 更新时间:2023-11-04 14:04:40 25 4
gpt4 key购买 nike

我有两个类:MyArrayCollection(实现 Collection)和 MyArrayList(扩展 MyArrayCollection 并实现 List)。第一个有 iterator()。如何在第二个类的 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();
}
...
}

最佳答案

我不确定我是否理解你的问题,但我猜你想使用 Iterator<Integer> 的实例取自iterator()方法。当然可以,例如这样:

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

...
}

然后你可以实现 ListInteger 中的方法使用该迭代器实例。但问题是你需要实现这些功能:

  • 向后迭代
  • 随时获取索引
  • 随时添加新值
  • 在此时设置一个新值

并且迭代器实例可能不会为您提供太多帮助。例如ArrayList.listIterator迭代器不使用ArrayList.iterator完全没有。

关于java - 如何在 listIterator() 实现中使用父类(super class) iterator() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28992633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com