迭代器模式--回答历史性问题
记得以前春哥问我:为什么迭代器都能够遍历多种数据结构,是怎么实现的呢。?
今天有空,看了迭代器模式,研究了几个小时的JDK~~总结如下:
先来看看一个例子:
List<String> list=new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); Iterator<String> iter=list.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); } //遍历Vector List<String> vec=new Vector<String>(); vec.add("d"); vec.add("e"); vec.add("f"); Iterator<String> iterv=vec.iterator(); while(iterv.hasNext()){ System.out.println(iterv.next()); }
为什么一个方法能够遍历不同集合呢。?
看下它们的关系图就可以知道原理了,而且使用的是迭代器模式。
纯粹是纪念下午的研究结果~~