迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式(可以通过cursor移动,读取数据),可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。
各种语言实现迭代器的方式皆不尽同,有些面向对象语言像Java,C#,Ruby,Python,Delphi都已将迭代器的特性内置语言当中,完美的跟语言集成,我们称之隐式迭代器(implicit iterator),但像是C++语言本身就没有迭代器的特色,但STL仍利用模板实现了功能强大的迭代器。STL容器的数据的内存地址可能会重新分配(reallocate),与容器绑定的迭代器仍然可以定位到重新分配后的正确的内存地址。
迭代,通俗点说 叫 一个个数过去,实现这样一个个数过去功能的东西,叫迭代器 。 java迭代器 较多使用在容器中 ,如数组链表 ArrayList( 反正就是能装东西的玩 意儿) 举个例子:
//我们先往链表中装东西
ArrayList a = new ArrayList();
a.add("东西1");
a.add("东西2");
//从链表中取东西怎么办呢,自然就用到了迭代器
//用法是这样的
Iterator iter = a.iterator() ; //iter迭代器对象,可以用它 来数了
while(iter.hasNext()){ //先往左数,如果有东西就执行{}里的语句
String m = (String)iter.next(); //数到什么就拿出来 赋值给m
System.out.println(m); //拿出m用一下, 即打 印
}