Java中的迭代器(模式)最详解(是什么?为什么用?怎么用?)

迭代器是一种设计模式------迭代器模式;Java根据这个设计模式设计的一个对象,就是Iterator迭代器。在Java集合类Collection中有很多复杂的数据结构,比如ArrayList,LinkList ,HashSet 等等;它们的底层实现都各不相同,如果要用for循环遍历,那就要熟悉它们的数据结构是怎样的,获取对应的value的操作方法是什么;或者从它们之中排除某一个特定的值也要先...
摘要由CSDN通过智能技术生成
迭代器是一种设计模式------迭代器模式;Java根据这个设计模式设计的一个对象,就是Iterator迭代器。
在Java集合类Collection中有很多复杂的数据结构,比如ArrayList,LinkList ,HashSet 等等;它们的底层实现都各不相同,如果要用for循环遍历,那就要熟悉它们的数据结构是怎样的,获取对应的value的操作方法是什么;或者从它们之中排除某一个特定的值也要先拿出来进行比较,再调用集合类中特有的remove方法。
如:

ArrayList的For循环遍历:

在这里插入图片描述

那么,有没有一种方式,是不需要暴露容器的底层数据结构,又能让别人遍历容器元素的呢?
这就是迭代器模式:
它主要解决的问题就是提供一种方法给使用者顺序(必须是顺序,不能是逆序或者中途截取)获取集合容器中全部元素,并且按顺序输出;使用者无需关心内部数据结构的实现。遍历的工作也有原来的集合类主动去get ; 变为了迭代去主动去游走拿;这样的有个好处就是对LinkList这种遍历较慢的容器类能加快遍历速度。

怎么用?

在array.iterator()的时候就是会创建并且返回一个Itr 类,这个类是实现了Iterator 接口的。
看看源码:::在这里插入图片描述在这里插入图片描述
iterator.hasNext() 返回值是一个Boolean,循环中还有next就true,继续拿元素。
iterator.next() 返回值是一个Obejectt;就是下一个元素。

		ArrayList array = new ArrayList();
        array.add("a");
        array.add("b")
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值