[英]How to use super class iterator() in the listIterator() implementation?
我有兩個類:實現集合的MyArrayCollection和擴展MyArrayCollection並實現List的MyArrayList。 第一個有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()
方法獲取的Iterator<Integer>
實例。 當然可以,對於這樣的實例:
class CListIterator extends CIterator implements ListIterator<Integer>
{
private final Iterator<Integer> iterator;
public CListIterator() {
super();
this.iterator = iterator();
}
...
}
然后,您可以使用該迭代器實例實現ListInteger
的方法。 但是問題在於您需要實現以下功能:
而且迭代器實例可能不會對您有太大幫助。 例如, ArrayList.listIterator
迭代器根本不使用ArrayList.iterator
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.