Метод класса итератора не может быть достигнут в главном

#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 to public ArrayIterator iterator() , а также тип данных iter переменной in main ?

4. Ладно, я сделал то, что ты сказал. Это сработало правильно. Спасибо.