我对迭带器的概念不是很理解..请大家用通俗的语言帮忙解释一下
1。容器之间的共性通过迭代器达成的?
2。迭代器工作是遍历并选序列中的对象? 什么玩意? 选择对像我直接用一个for不就行了

解决方案 »

  1.   

    迭代器的功能跟数组差不多,都是为了便于访问
    并不是都能用for就可以啦,数组可以定义下标来取对象
    但是有的对象没有下标,所以就映射成迭代器,依次取对象
      

  2.   

    我似乎有点理解了。但是不知道哪里有点不对头.. ArrayList是不是迭代的一个表现?~~~~~~~~~~~``? 但是他也有需要一个值呀 get()??
    难到你的意思就是说list的这个??
      

  3.   

    任何容器都必须有方法可以将东西放进去,然后有方法将东西取出来。毕竟,存放事物是容器最基本的工作。对于ArrayList,add()是插入对象的方法,而get()是取出元素的方法之一。ArrayList很灵活,可以随时选取任意元素,或使用不同的下标一次选取多个元素。
    如果你从更高层的角度思考,会发现这里有个缺点:要使用容器必须知道其中元素确切的类型。起初看起来这没什么不好,但是考虑下面的情况:如果原本是使用ArrayList,但是后来考虑到容器的特点,你想换用Set,应该怎么做?或者你打算写通用的代码,它只是使用容器,不知道或不关心容器的类型,那么如何才能不重写代码就可以应用于不同类型的容器呢?
    迭代器的概念(也是一种设计模式)可以用来达成此目的。迭代器是一个对象,它的工作是遍历并选择序列中的对象。客户端程序员不关心序列底层的结构。此外,迭代器通常被
    称为“轻量级”对象:创建它的代价小。因此,经常可以见到对迭代器有些奇怪的限制。例如,某些迭代器只能单向移动。
    Java的Iterator就是迭代器受限制的例子,它只能用来:
    1. 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。
    2.使用next()获得序列中的下一个元素。
    3.使用hasNext()检查序列中是否还有元素。
    4.使用remove()将上一次返回的元素从迭代器中移除。