迭代器

迭代器

 

迭代器模式:提供一种方法对一个容器对象的各个元素进行访问,而又不暴露该容器的内部细节。

 

java集合框架的集合类,我们有时候称之为容器。容器的种类有很多,如:ArrayList,LinkedList,HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构;HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。

 

因为容器的内部结构不同,很多时候看能不知道该怎样去遍历一个容器中的元素,所以为了使对容器内元素的操作更为简单,java引入了迭代器。

 

把访问逻辑从不同类型的集合类中抽取出来,从而避免向外部暴露集合的内部结构。

 

对于数组,我们使用的是下标来进行处理:

 

int array[] = new int[3];

for(int i = 0;i < array.length;i ++){

System.out.println(array[i]);

}

 

对于ArrayList,我们使用的是:

 

List<String> list = new ArrayList<String>();

for(int i = 0;i < list.size();i ++){

System.out.println(list.get(i));

}

 

对于这两种方式,我们总是知道它的内部结构,访问代码和集合本身是紧密耦合的,无法将访问逻辑从集合类和客户端代码中分离出来,不同的集合会对应的遍历方法客户端代码无法复用。在实际应用中,如何将上面两个集合整合是相当麻烦。Iterator总是用同样一种逻辑来遍历集合,使得客户端自身不需要维护集合的内部结构,所有的内部状态由Iterator来维护,客户端不用直接和集合打交道,而是通过控制Iterator,向它发送指令,然后完成遍历

 

## java.util.Iterator

 

### 在java中,Iterator为一个接口,它只提供了迭代的基本规则。在JDK中它是这样定义的:对Collection进行迭代的迭代器。迭代器取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值