前言
月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)
央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)
泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)
月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容
希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!
一、什么是迭代器模式?
迭代器模式是一种设计模式,它提供一种顺序访问集合对象元素的方法,而不需要暴露集合对象的内部表示。迭代器模式的核心是迭代器接口,它定义了访问集合元素的方法,包括获取下一个元素、判断是否还有下一个元素等
二、迭代器模式的优缺点:
优点:
- 简化集合类的接口,提高代码的可读性和可维护性;
- 支持多种遍历方式,提高代码的灵活性和可扩展性;
- 将遍历算法和集合类解耦,提高代码的复用性和可测试性。
缺点:
-
代码复杂性:使用迭代器模式会增加代码的复杂度,需要实现迭代器接口和迭代器类,这增加了代码的复杂性和维护成本。
-
性能问题:迭代器模式需要额外的内存来存储迭代器对象,而且在迭代过程中需要频繁的创建和销毁迭代器对象,这会影响程序的性能。
-
不支持修改操作:迭代器模式只能用于遍历集合中的元素,而不能对集合进行修改操作,如果需要修改集合中的元素,就需要使用其他模式。
三、迭代器模式的结构:
四、迭代器模式实战:
迭代器模式java里面应该遇到的会非常多,只要是集合里面都会带迭代器,就以list为例:
1.接口Iterabel
2.ArrayList 实现List,而list实现Collection 最终实现了Iterator
3.使用:
4.结果:
五.总结
迭代器模式的使用场景:
-
当需要遍历一个聚合对象的元素时,可以使用迭代器模式。例如遍历一个数组或集合中的元素。
-
当需要对不同类型的聚合对象进行遍历时,可以使用迭代器模式。例如遍历一个数组和一个链表中的元素。
-
当需要隐藏聚合对象的内部结构,只暴露遍历接口时,可以使用迭代器模式。例如只提供一个迭代器接口,而不暴露聚合对象的具体实现。
-
当需要支持多种遍历方式时,可以使用迭代器模式。例如正序遍历、倒序遍历、随机遍历等。
有兴趣的小伙伴们,也可以自己利用java提供的迭代器接口实现自己的迭代器.