在ArraySet上使用迭代器

时间:2016-02-17 23:53:29

标签: java iterator

我有一个数组集,希望迭代器指向集合的开头。不知道如何实现这个,下面是我到目前为止。

public ArraySet() {
    // INSERT YOUR CODE HERE
    collection = new Object[INITIAL_CAPACITY];
    capacity = 0;
}

/**
 * Returns an iterator for this set of objects.
 * @pre true
 * @post Set is not changed
 * @return An iterator for the set of objects that points to   the                 beginning
 *         of the set.
 */

public SetIterator iterator() {

   ArraySet testArraySet = new ArraySet();
   SetIterator arraySetIterator = testArraySet.iterator();
   while (arraySetIterator.hasNext())
   {
    Object element = arraySetIterator.next();          
    return element;     
   }
    return null;
}

1 个答案:

答案 0 :(得分:0)

我认为您的目的是让ArraySet实现Set<E>接口。这将迫使您实现各种方法,包括iterator()方法。您还必须创建自己的实现Iterator<E>的类。这是ArraySet.iterator()方法返回的内容。

为了使事情更加具体,下面是我描述的结构的一小段代码片段。

public class ArraySet<E> implements Set<E>{

    /*
    requrired methods here
    */
    Iterator<E> iterator()
    {
        return new MyIterator<E>(this);
    }

    private class MyIterator<E> implements Iterator<E>{
        /*
        requrired methods here
        */
    }
}

请按照以下链接获取有关Java SetsIterators的更多信息。如果这仍然让您感到困惑,我建议您查看how other iterators are used first