为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA中Iterator的具体作用?

JAVA中Iterator的具体作用?

MMTTMM 2019-02-25 16:16:14
JAVA中Iterator的具体作用?
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

简单地说:这是java里面的一个迭代器,主要用来取集合容器里面的值

举个小例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

list l = new ArrayList();

 l.add("aa");

 l.add("bb");

 l.add("cc");

 for (Iterator iter = l.iterator(); iter.hasNext();) {

  String str = (String)iter.next();

  System.out.println(str);

 }

 /*迭代器用于while循环*/

 Iterator iter = l.iterator();

 while(iter.hasNext()){

  String str = (String) iter.next();

  System.out.println(str);

 }

他又几个常用的方法:

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

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

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

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

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

下面是百度百科的一段内容,我把它复制过来给你参考参考:

Iterator模式有三个重要的作用:

1)它支持以不同的方式遍历一个聚合 复杂的聚合可用多种方式进行遍历,如二叉树的遍历,可以采用前序、中序或后序遍历。迭代器模式使得改变遍历算法变得很容易: 仅需用一个不同的迭代器的实例代替原先的实例即可,你也可以自己定义迭代器的子类以支持新的遍历,或者可以在遍历中增加一些逻辑,如有条件的遍历等。

2)迭代器简化了聚合的接口 有了迭代器的遍历接口,聚合本身就不再需要类似的遍历接口了,这样就简化了聚合的接口。

3)在同一个聚合上可以有多个遍历 每个迭代器保持它自己的遍历状态,因此你可以同时进行多个遍历。

4)此外,Iterator模式可以为遍历不同的聚合结构(需拥有相同的基类)提供一个统一的接口,即支持多态迭代。

简 单说来,迭代器模式也是Delegate原则的一个应用,它将对集合进行遍历的功能封装成独立的Iterator,不但简化了集合的接口,也使得修改、增 加遍历方式变得简单。从这一点讲,该模式与Bridge模式、Strategy模式有一定的相似性,但Iterator模式所讨论的问题与集合密切相关, 造成在Iterator在实现上具有一定的特殊性,具体将在示例部分进行讨论。

正如前面所说,与集合密切相关,限制了 Iterator模式的广泛使用。在一般的底层集合支持类中,我们往往不愿“避轻就重”将集合设计成集合 + Iterator 的形式,而是将遍历的功能直接交由集合完成,以免犯了“过度设计”的诟病,但是,如果我们的集合类确实需要支持多种遍历方式(仅此一点仍不一定需要考虑 Iterator模式,直接交由集合完成往往更方便),或者,为了与系统提供或使用的其它机制,如STL算法,保持一致时,Iterator模式才值得考 虑。

 

 


查看完整回答
反对 回复 2019-03-02
  • 2 回答
  • 0 关注
  • 753 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信