个人深入理解java集合框架:关于Iterator及ListIterator的思考

这是一篇在学习Collection的前的一个思考。
个人在参考网上各种资料学习的时候,始终没有明白一件事,就是Iterator及ListIterator到底用来做什么的。那么这片博文就是来说说我对于Iterator及ListIterator的看法。
可能在文中出现不少奇奇怪怪的字眼和定义,都是自己的理解和自己定义的,请谅解。

Iterator及ListIterator是什么

最简单来说,其实就是迭代器。当然这样说我自己还是懵的。
Iterator及ListIterator两个都是接口,接口是什么?一套规范,没有标准实现(default方法除外);

那么它规定的是什么?

如何遍历(听起来很搞笑吧?但是我的理解就是如此)。
Iterator规范的是如何查找下一个元素。
ListIterator则在Iterator的基础上,增加了索引的概念,增加了逆向查询方法。

为什么要这么设计呢?

众所周知,数据结构是数据的组织方式,也算是我们计算机领域的基石了。
而我们操作数据时,避免不了和数据结构打交道,其中一种方式就是遍历。
因此一门计算机程序语言在对数据结构进行底层设计时,都会附加的设计遍历的方式。
而java有接口的概念,那么java就实现一种底层的遍历手段,当然还会有多种遍历的方式。
那么Iterator及ListIterator就定义了一套规范,各家都可以实现自己的遍历方式,但是我提供的基础集合类(Collection)就提供了我默认的遍历实现方法。

简单来说就是:
我把规约放在那,你们实现你们的集合类时,爱实现不实现,那是你的事。我提供的我的集合类,我有我的默认实现方法,爱用不用。
好像说的有点嚣张了。。(搞笑一下)

小结

java语言在设计时,处处体现了解耦的思想,同时也体现了其开放的特点。
在数据结构底层设计时也体现了这种思想,Iterator及ListIterator就是其体现的一个方面。
可能这也是java语言生命力持久旺盛的一个小原因。
换个角度思考,如果我们在项目编写代码的时候,是否如此的思考呢?
(写个100多行的方法,感觉组长都要拿起40米的大刀了)

与君共勉。2020.04.08

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值