java中什么叫迭代,什么叫迭代器

Python016

java中什么叫迭代,什么叫迭代器,第1张

迭代

是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。例如利用迭代法*求某一数学问题的解。

对计算机特定程序中需要反复执行的子程序*(一组指令),进行一次重复,即重复执行程序中的循环,直到满足某条件为止,亦称为迭代。

迭代器(Iterator)模式:

又叫做游标模式,它的含义是,提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。

注意:Java的集合框架的集合类,有的时候也称为容器。

从定义上看,迭代器是为容器而生,它本质上就是一种遍历的算法。因为容器的实现千差万别,很多时候不可能知道如何去遍历一个集合对象的元素。Java为我们提供了使用迭代的接口,Java的所有集合类丢失进行迭代的。

简单的说,迭代器就是一个接口Iterator,实现了该接口的类就叫做可迭代类,这些类多数时候指的就是java.util包下的集合类。

总结:

迭代器,提供一种访问一个集合对象各个元素的途径,同时又不需要暴露该对象的内部细节。java通过提供Iterator和Iterable俩个接口来实现集合类的可迭代性,迭代器主要的用法是:首先用hasNext()作为循环条件,再用next()方法得到每一个元素,最后在进行相关的操作。

扩展资料

首先,创建了一个List的集合对象,并放入了俩个字符串对象,然后通过iterator()方法得到迭代器。iterator()方法是由Iterable接口规定的,ArrayList对该方法提供了具体的实现,在迭代器Iteartor接口中,有以下3个方法:

1、hasNext() 该方法英语判断集合对象是否还有下一个元素,如果已经是最后一个元素则返回false

2、next() 把迭代器的指向移到下一个位置,同时,该方法返回下一个元素的引用

3、remove()  从迭代器指向的Collection中移除迭代器返回的最后一个元素,该操作使用的比较少。

注意:从Java5.0开始,迭代器可以被foreach循环所替代,但是foreach循环的本质也是使用Iterator进行遍历的。

参考资料:百度百科——迭代器

参考资料:百度百科——迭代

关于你的疑问,请参考我的学习笔记吧。

hasNext、next方法:迭代器用于遍历集合元素。获取迭代器可以使用Collection定义的方法:Iterator iterator()

迭代器Iterator 本身是一个接口,集合在重写Collection的iterator()方法时利用内部类提供了迭代器的实现。Iterator提供了统一的遍历集合元素的方式,其提供了用于遍历集合的两个方法:boolean hasNext()判断集合是否还有元素可以遍历。

E next() 返回迭代的下一个元素。

每一种集合的实现类都是各自的迭代器实现,不用关心具体迭代器的类型,只将他们当作迭代器用于遍历集合元素即可。应当遵循“问-取-删”模式,适用于while循环。

Iterator<String>it = c1.iterator()--- 问的过程,询问c1集合中是否还有元素

while( it.hasNext() )

{

String str = (String) it.next()--- 取出来的是Object类型,所以需要转换类型

}

注意:应建立在hasNext返回true的基础上执行next()方法

迭代过程中,不能调用集合的相关方法来改变集合中的元素,不然会抛出异常。应使用迭代器自身提供的方法操作。迭代器的删除方法是在原集合中删除元素。在调用remove方法前必须通过迭代器的next()方法迭代过元素,那么删除的就是这个元素,并且不能连续接着调用remove。

While( it.hasNext() )

{

String str = (String) it.next()

if(“#”.equals ( str ) )

{ //凡是相互比较,应当让字变量.equals(变量),可以避免遇到null空指针异常

it.remove()

}

}

首先解释迭代。

迭代简单的理解,重文字上可以才分为

迭(叠)加,代入(数)

是利用计算机高速、可从重复性高的特点进行计算的模式

迭代的最简单应用就是,把四维整型数组,中的内容全部输出。那就用四层循环慢慢取吧。

每次循环做的事情基本上是一件事,无外乎就是角标自增,然后取数。

再说遍历。

遍历很好理解,通过某种方式,不论是重头到尾,还是用Hash算法,

反正是从头到尾把数据结构(链表、数组、树、图)所有的节点都访问一遍,就叫遍历。

像刚才,四维数组取数,就是一个遍历的过程,

简单的使用迭代的方式,从第一个元素一直遍历(取)到最后一个元素。

稍微复杂的还有遍历二叉树,遍历欧拉图等。都用相应的算法。