Iterator接口是JAVA集合框架的成员,但它与Collection系列、Map系列的集合不一样:这两者主要用于盛装其他对象,而Iterator则用于遍历(即迭代访问)Collection集合中的元素。Iterator对象也被称为迭代器。
Iterator接口隐藏了各种Collection实现类的底层细节,向应用程序提供了遍历Collection集合元素的同一编程接口,Iterator接口定义了如下三个方法:
boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true。
Object next():返回集合里下一个元素。
Void remove():删除集合里上一次next方法返回的元素。
通过Iterator来遍历集合元素的程序代码:
package com.king.testcollection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class TestCollection {
/**
* @author 王者黑桃
*/
public static void main(String[] args) {
//创建一个集合
Collection names=new HashSet();
names.add("猪八戒");
names.add("沙和尚");
names.add("孙悟空");
//获取names集合对应的迭代器
Iterator it=names.iterator();
while(it.hasNext()){
//it.next()方法返回的数据类型是Object类型,需要强制类型转换
String name=(String)it.next();
System.out.println(name);
if(name.equals("沙和尚")){
//从集合中删除上次next方法返回的的元素
it.remove();
}
//对name变量赋值,不会改变集合元素本身
name="测试字符串";
}
System.out.println(names);
}
}
从上面程序可以看出,Iterator仅用于遍历集合,Iterator本身并不提供盛装对象的能力。如果需要创建Iterator对象,则必须有一个迭代的集合。 |
|