Пользовательский Java Iterator с путаницей типов

У меня есть универсальный класс, который связывает объект и порядок:

public class OrderedObject {
    private int order;
    private T object;

    public OrderedObject(int order, T object) {
        this.order = order;
        this.object = object;
    }

    public int getOrder() {
        return order;
    }

    public T getObject() {
        return object;
    }
}

Я разработалSet реализация, которая хранитOrderedObject случаи и хочет произвестиIterator перечисление в порядке, установленном встроенным порядком:

public class OrderedObjectSet extends AbstractSet implements Set {
    Set s = new HashSet();

    public boolean add(int order, T object) {
        return s.add(new OrderedObject(order, object));
    }

    public Iterator iterator() {
        return new OrderedObjectSetIterator();
    }

    public int size() {
        return s.size();
    }

    private class OrderedObjectSetIterator implements Iterator {
        private int index;

        public boolean hasNext() {
            return index < s.size();
        }

        public T next() {
            T object = null;

            for (Iterator it = s.iterator(); it.hasNext(); ) {
                OrderedObject o = it.next();
                if (o.getOrder() == index) {
                    object = o.getObject();
                }
            }

            index++;
            return object;
        }

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

Последний класс не компилируется, потому что кажется, что вIterator инициализация в

for (Iterator it = s.iterator(); it.hasNext(); ) {

Что я пропускаю?

Ответы на вопрос(1)

Ваш ответ на вопрос