Iterator

来源:互联网 发布:安卓4.0淘宝 编辑:程序博客网 时间:2024/06/08 03:35

一、为什么要使用迭代器?

请设想一样,一段代码,之前是用于对List操作的,而现在需要这段代码对Set进行操作,该怎么办呢?大家可能想到再编写对Set进行操作的代码就可以了,然后此时如果我们使用迭代器将会显得代码更加优雅,因为迭代器可以针对不同的集合类对象进行操作,而根本不管集合类到底是什么。

二、什么是迭代器?

迭代器是一个对象,它的功能是遍历并选择集合中的对象,而并不需要知道该集合到底是什么类型的。

三、迭代器中包含的方法:

(1)iterator():用于返回容器的一个Iterator。

(2)hasNext():用于判断集合中是否还有元素。

(3)next():用来获取集合的下一个元素。

(4)remove():用来移除集合中的元素。注意:remove()方法必须用在next()方法之后。

四、代码例子:

package com.lt.iterator;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;/** * 演示类:演示迭代器的使用 * @author Administrator * */public class IteratorDemo {public static void display(Iterator<Pet> iterator){while(iterator.hasNext()){Pet pet=iterator.next();System.out.println(pet);}}public static void main(String[] args) {List<Pet> list=new ArrayList<Pet>();list.add(new Dog());list.add(new Cat());Set<Pet> set=new HashSet<Pet>();set.add(new Dog());set.add(new Cat());display(list.iterator());display(set.iterator());}}class Pet{@Overridepublic String toString() {return "Pet";}}class Dog extends Pet{@Overridepublic String toString() {return "Dog";}}class Cat extends Pet{@Overridepublic String toString() {return "Cat";}}
 五、总结

从上面的代码我们可以看出display()方法仅仅出入一个迭代器,而并不需要知道是什么产生的迭代器。这就是使用迭代器的好处。

1 0
原创粉丝点击