.iterator是什么?为什么使用.iterator迭代遍历

本文深入探讨了Java中的迭代器模式,解释了其在集合遍历中的重要性,以及如何通过Iterator模式避免暴露集合的内部结构,实现访问逻辑与集合类的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Iterator

迭代这个名词对于熟悉Java的人来bai说绝对不陌生。

我们常常使用duJDK提供的迭代接口进行java collection的遍历:
Iterator it = list.iterator();
while(it.hasNext()){
//using “it.next();”do some businesss logic
}
而这就是关于迭代器模式应用很好的例子。

使用迭代的意义又是什么?

       Iterator模式是用于遍历集合类的标bai准访问du方法。它可以把访问逻zhi辑从不同类型的集合类中抽象出来,dao从而避免向客户端暴露集合的内部结构。
例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:
                                                                                                    for(int i=0; i<array.size(); i++) { ... get(i) ... }
           而访问一个链表(LinkedList)又必须使用while循环:
                                                                                                while((e=e.next())!=null) { ... e.data() ... }
       以上两种方法客户端都必须事先知道集合的内部结构,访问代码和集合本身是紧耦合,无法将访问逻辑从集合类和客户端代码中分离出来,每一种集合对应一种遍历方法,客户端代码无法复用。
       更恐怖的是,如果以后需要把ArrayList更换为LinkedList,则原来的客户端代码必须全部重写。
为解决以上问题,Iterator模式总是用同一种逻辑来遍历集合:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值