#java #data-structures
Вопрос:
Я попытался добраться до этого класса ArrayIterator с помощью метода iterator (). но я не могу использовать метод setValue внутри main. Он не может видеть этот метод. Как я могу сделать его видимым в main? Кто-нибудь, пожалуйста, может мне помочь?( Я добавил другие методы в ArrayIterator.)
public class ArrayIterator implements Iterator<E> {
int current = 1;
public boolean hasNext() {
return current < n;
}
public E next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
System.out.println(getSize());
System.out.println(getHeap()[current]);
return heap[current ];
}
public E setValue(E item){
if (!hasNext()) {
throw new NoSuchElementException();
}
E result = heap[n];
heap[n] = item;
return resu<
}
}
@Override
public Iterator<E> iterator() {
return new ArrayIterator();
}
Также мой основной класс;
Heap<Integer> j = new Heap<>();
Iterator<Integer> iter = j.iterator();
Комментарии:
1. Разве название класса не должно быть
ArrayIterator<E>
таким ? Или это внутренний класс какого-то другого определенного классаE
?2. да, правильно, это внутренний класс другого класса.
3. Что произойдет, если вы измените сигнатуру
iterator
topublic ArrayIterator iterator()
, а также тип данныхiter
переменной inmain
?4. Ладно, я сделал то, что ты сказал. Это сработало правильно. Спасибо.