Привет, я хочу реализовать итератор для класса, который расширяет абстрактную коллекцию.Реализация Итератора для abstractCollection
class Name<E extends Comparable<E>>
extends AbstractCollection<CompRational>
implements Iterable<E>{
...
public Iterator<E> iterator(){
return new NameIterator<E>(this);
}
...
}
и Итератор должен выглядеть следующим образом
class NameIterator<E extends Comparable<E>> implements Iterator<E>{
private Name<E> tree;
private int pos = 0;
public NameIterator (Name<E> t) {
...
}
@Override
public boolean hasNext() {
...
}
@Override
public E next() {
...
}
@Override
public void remove(){
throw new UnsupportedOperationException();
}
}
сообщение об ошибке, я получаю то, что мой класс Name не переопределить или реализовать итератор и итератор не может переопределить итератора, так как типы несовместимы и он говорит, что я использую два разных, но где и как и как я могу избавиться от него?
PS: Спасибо за все полезные комментарии, но я идиот, а критическая часть AbstractCollection<CompRational>
не была даже частью вопроса. Сэр полностью забыл об этом. Пожалуйста, удалите это, если это возможно.
На самом деле, что вы пытаетесь реализовать 2 «Итераторы»? почему вы хотите, чтобы оба класса выполняли «Итератор»? – Blip
Возможно, вы захотите реализовать Iterable в первом. Не Итератор . –
Nytux
Да, sry публичный класс должен быть итерабельным, а не итератором. Но я сделал это в реальном коде. – haxor789