迭代模式是访问集合类的通用方法,只要集合类实现了Iterator接口,就可以用迭代的方式来访问集合类内部的数据,Iterator访问方式把对不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果。
例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:
for(int i=0; i<array.length; i++) { ... get(i) ... }
这种方法的缺点就是事先必须知道集合的数据结构,而且当我换了一种集合的话代码不可重用,要修改,比如我用set,就不能通过索引来遍历了。访问代码和集合是紧耦合,无法将访问逻辑从集合类和客户端代码中剥离出来,每一种集合类对应一种访问方式,代码不可重用。
为解决以上问题,Iterator模式总是用同一种逻辑来遍历集合。
每一种集合类返回的Iterator具体类型可能不同,Array可能返回ArrayIterator,Set可能返回SetIterator,Tree 可能返回TreeIterator,但是它们都实现了Iterator接口,因此,客户端不关心到底是哪种Iterator,它只需要获得这个 Iterator接口即可,这就是面向对象的威力。
这就是针对抽象编程的原则:对具体类的依赖性最小。
分享到:
相关推荐
java Iterator迭代器的使用 java Iterator迭代器的使用 java Iterator迭代器的使用
java的List集合和列表迭代器的使用,简单的操作,里面附代码,简单易懂。 使用typora可以打开,其他打开会有格式问题,
用java编写的迭代器,实现10数字正反向遍历。
Java试题-4:迭代器的应用 查询修改集合可以用集合自身的方法来实现 也可以用迭代器来实现 区别在于用迭代器对集合的修改操作更加安全
//检查迭代器中是否还有剩余的元素 public boolean hasNext() { return (null != nextPosition); } //返回迭代器中的下一元素 public Object getNext() throws ExceptionNoSuchElement { if (!hasNext()) throw...
7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip7.java迭代器接口.zip...
迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){ ...而这就是关于迭代器模式应用很好的例子。
迭代器模式.rar迭代器模式.rar之java设计模式
Java学习之Iterator(迭代器)的一般用法
设计模式--迭代器模式java例子
【Java设计模式】(1)迭代器模式Iterator(代码)
Java设计模式20迭代器模式.pdf
关于java的在我课程学习时的小例子.供大家分享。
设计模式之迭代器模式的java小程序实现!简单的代码!
java设计模式--迭代器模式,理解这个例子就完全理解迭代器啦
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向...设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
深入浅出Java设计模式之迭代器模式 _天极网
java中Iterator迭代器讲解,基础数据对象。
java无色连珠游戏源代码(1) 货币转换(1) 薄饼游戏源代码(1) java连连看(1) java浏览器(1) c++(1) visual(1) opengl做的路灯(1) 五子棋(1) 围棋(1) opengl闹钟(1) opengl喷泉(1) opengl拼图(1) java电话...
Listiterator迭代器的方向遍历,在反向遍历时 源码中 index中的初值需要在定义的时候传入size集合长度 或者通过正向遍历,将nextIndex的值变为集合的长度 然后public boolean hasPrevious() { return nextIndex > 0...