我有一个数组集,希望迭代器指向集合的开头。不知道如何实现这个,下面是我到目前为止。
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;
}
答案 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 Sets和Iterators的更多信息。如果这仍然让您感到困惑,我建议您查看how other iterators are used first。