首页 > 试题广场 >

什么是迭代器(Iterator)?

[问答题]
Iterator提供了统一遍历操作集合元素的统一接口, Collection接口实现Iterable接口, 
每个集合都通过实现Iterable接口中iterator()方法返回Iterator接口的实例, 然后对集合的元素进行迭代操作.
有一点需要注意的是:在迭代元素的时候不能通过集合的方法删除元素, 否则会抛出ConcurrentModificationException
异常. 但是可以通过Iterator接口中的remove()方法进行删除.
1. Iterable接口 Iteratoriterator(); 2. Iterator接口 boolean hasNext(); E next(); void remove();

发表于 2016-01-08 16:06:56 回复(2)

迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。

       当你需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使用迭代器模式。另外,当需要对聚集有多种方式遍历时,可以考虑去使用迭代器模式。迭代器模式为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一的接口。

发表于 2016-01-06 10:45:17 回复(0)
迭代器,提供一种访问一个集合对象各个元素的途径,同时又不需要暴露该对象的内部细节。java通过提供Iterator和Iterable俩个接口来实现集合类的可迭代性,迭代器主要的用法是:首先用hasNext()作为循环条件,再用next()方法得到每一个元素,最后在进行相关的操作
发表于 2018-04-28 09:48:46 回复(0)
  1. 迭代器是一种设计模式,是一个对象,是一种通用的遍历集合元素的接口。
  2. 用来遍历Collection 集合的元素,且不需要了解集合的底层的数据结构是什么,直接遍历。
  3. 该集合有3个方法。分别是hasNext()、next()、remove()。
  4. 遍历集合元素过程中不能 调用集合对象的remove方法来删除集合元素,那样会报异常。可以使用迭代器对象的remove()方法来删除集合元素。
  5. 还有一个ListIterator接口,但只能用于List集合。它是Iterator接口的升级版,里面除了Iterator含有的功能外,还具有一些其他的功能。
  6. Iterator遍历集合元素时,只能单向遍历,而ListIterator可以双向进行遍历。

编辑于 2019-06-21 09:30:25 回复(0)
  1. 使用Iterator的简单例子

  2. import  java.util.*;

  3. public class  TestIterator {


  4. public   static   void  main(String[] args) {



  5. List list=new  ArrayList();

  6. Map map=new  HashMap();

  7. for ( int  i= 0 ;i< 10 ;i++){

  8. list.add(new  String( "list" +i) );

  9. map.put(i, new  String( "map" +i));

  10. }
  11. Iterator iterList= list.iterator();//List接口实现了Iterable接口

  12. while (iterList.hasNext()){

  13. String strList=(String)iterList.next();

  14. System.out.println(strList.toString());

  15. }

  16. Iterator iterMap=map.entrySet().iterator();

  17. while (iterMap.hasNext()){

  18. Map.Entry strMap=(Map.Entry)iterMap.next();

  19. System.out.println(strMap.getValue());



  20. }
发表于 2017-07-20 11:04:05 回复(0)
public static void main(String[] args) {
		
		List<Integer> list = new ArrayList<Integer>();
		list.add(2);
		list.add(6);
		list.add(3);
		list.add(2);
		list.add(1);
		Iterator<Integer> iterator = list.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
	}

发表于 2020-02-04 22:58:09 回复(0)
迭代器是一种设计模式,一个对象,当要访问一个集合的时候不需要了解底层数据结构,直接遍历。
发表于 2017-09-22 08:21:02 回复(0)
Iterator接口提供了很多对集合元素进行迭代遍历的方法。每一个集合类都包含了可以返回迭代器实例的 迭代方法。通过这个迭代器实例就可以遍历集合元素。迭代器可以在迭代的过程中删除底层集合的元素,但是不可以直接调用集合的 remove(Object Obj)删除,可以通过迭代器的remove()方法删除。
发表于 2016-03-07 21:24:07 回复(0)
Iterator接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的
迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。
发表于 2015-10-29 12:10:41 回复(0)

迭代器是一个接口,是Collection集合元素的通用获取方式。

编辑于 2020-02-23 17:32:29 回复(0)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

  Java中的Iterator功能比较简单,并且只能单向移动:

  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

  (2) 使用next()获得序列中的下一个元素。

  (3) 使用hasNext()检查序列中是否还有元素。

  (4) 使用remove()将迭代器新返回的元素删除。

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
发表于 2016-08-17 15:56:54 回复(14)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。   Java中的Iterator功能比较简单,并且只能单向移动:   (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。   (2) 使用next()获得序列中的下一个元素。   (3) 使用hasNext()检查序列中是否还有元素。   (4) 使用remove()将迭代器新返回的元素删除。   Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
发表于 2021-08-13 22:51:44 回复(0)
Iterator接口为Collection接口继承,每一实现Collection接口的实现类都包含Iterator()方法,返回一个Iterator对象,从而实现对类元素的迭代遍历,其中next()返回当前指针的下一元素,hasNext()判断当前指针是否存在元素,remove()从底层删除元素
发表于 2021-03-13 08:48:41 回复(2)
<p>iterator是用于遍历集合元素的一个接口,有next返回下一序列元素,hasnext判断下一序列是否含有元素,remove删除元素</p>
发表于 2020-12-08 18:06:18 回复(0)
<p>迭代器是一种设计模式,是一个对象,用于遍历集合中的对象。</p><p>集合继承了迭代器接口。</p><p>迭代器有hasNext()next()remove()</p><p><br></p>
发表于 2020-10-20 22:52:50 回复(0)
1.迭代器是一种设计模式,是一个对象,是一个用于遍历集合的接口
2.集合实现了该接口,有3个实现方法hashNext(),next(),remove(),开发人员并不需要了解集合底层的数据结构是什么,直接遍历。
3.遍历出来的元素不能用集合的remove()方法删除,否则会包异常,只能用Iterator的remove方法删除
4.Iterator迭代器只能单向遍历,而ListIterator接口是Iterator的加强版,只能用于List集合,是双向遍历的
发表于 2020-09-01 13:58:42 回复(0)
它是一种设计模式,它是一个类,它可以遍历或选着序列中的对象
编辑于 2020-08-30 11:44:15 回复(0)
迭代器iterator是用来遍历集合的,每个集合中都有iterator方法,调用这个方法返回一个迭代器对象,这个对象可以调用hasnext方法 next方法。collection实现iterable接口(有iterator方法),集合类中有iterator方法
编辑于 2020-08-14 16:11:23 回复(0)
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表阵列)上遍访的接口,设计人员无需关心容器的内容。
迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法。
发表于 2020-07-22 07:36:03 回复(0)
<p>迭代器是一种设计模式,为了方便遍历数组,解决了。遍历过程中修改和删除问题</p>
发表于 2020-07-07 15:44:37 回复(0)