Skip to content

迭代器 Iterator

更新日期:2022-6-1
  • 2022-6-1:更新格式
  • 2015-4-25:创建文档

可以这样说,迭代器统一了对容器的访问方式。

考虑这样的情景:原本是对着List编码,但是后来发现需要把相同的代码用于Set。我们需要一种不关心容器类型而能够通用的容器访问方法。

Iterator模式是用于遍历集合类的标准访问方法。 它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
迭代器是一个对象,它的工作是遍历并选中序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。 能将遍历序列的操作与序列底层的机构分离。而且,创建迭代器的代价很小。

List<Integer> list = new LinkedList<>();
for (int i = 1; i < 6; i++) {
    list.add(i);
}
Iterator iterator = list.iterator();
System.out.println("iterator 本身: " + iterator);
System.out.println(iterator.next());
while (iterator.hasNext()) {
    System.out.print(iterator.next() + " ");
}

输出:

iterator 本身: java.util.LinkedList$ListItr@1540e19d
1
2 3 4 5

尽量使用Java中提供的Iterator。

作者: rustfisher.com | rf.cs@foxmail.com
示例: AndroidTutorial Gitee, Tutorial Github
本文链接: https://www.an.rustfisher.com/designPattern/Iterator_Java/
一家之言,仅当抛砖引玉。如有错漏,还请指出。如果喜欢本站的内容,还请支持作者。也可点击1次下方的链接(链接内容与本站无关),谢谢支持服务器。 如有疑问,请与我联系:Android issues - gitee