我编写了自己的链表类型数据结构,并希望创建一个Iterator对象,允许我迭代列表中的节点.
是否可以直接定义我自己的迭代器,或者我是否首先需要将其转换为现有的数据结构,LinkedList
并调用iterator()
它?
您可以通过实现Iterator接口的三个方法来定义自己的Iterator类:
boolean hasNext();
E next();
void remove();
Run Code Online (Sandbox Code Playgroud)
最后一个方法是可选的:您可以实现它只是抛出UnsupportedOperationException.
最常见的策略是使实际的类成为列表类的私有成员类.这样它就可以访问你班级的私人簿记数据; 这通常需要实现一个有效的迭代器.
一旦实现了迭代器类,使列表类实现Iterable通常很有帮助.这为客户端代码提供了获取迭代器的方法.
归档时间: |
|
查看次数: |
3584 次 |
最近记录: |