Не уверен, что понимаю реализацию итератора - PullRequest
0 голосов
/ 09 ноября 2018

Я должен реализовать итератор для:

public class BinaryHeap<AnyType extends Comparable<? super AnyType>> extends AbstractQueue<AnyType>

Класс, и это его атрибуты:

private static final int DEFAULT_CAPACITY = 100;
private int currentSize;
private AnyType [ ] array;
private boolean min;
private int modifications; //AKA "modcount"

Два метода, которые мне пришлось реализовать (переопределить?): hasNext() next(); Кроме того, мой итератор должен быть fail-fast . Это моя попытка:

 private class HeapIterator implements Iterator
{
    int expectedModCount = modifications;
    int currentPosition;

    public boolean hasNext()
    {
        return currentPosition < array.length;
    }


    public Object next() throws NoSuchElementException, 
                    ConcurrentModificationException, 
                    UnsupportedOperationException
    {

        if (modifications != expectedModCount)
            throw new ConcurrentModificationException();
        return array[currentPosition++];
    }

    public void remove()
    {
        throw new UnsupportedOperationException();
    }
}

Но я показал это однокласснику, и они сказали, что мои next() и hasNext() функции не годятся, но не было времени объяснить, почему. Любая помощь?

...