您的位置:首页 > 编程语言 > Java开发

java集合框架知识总结2

2012-10-16 22:47 211 查看
3、两种遍历集合的方法Iterator接口和foreach循环

1、Iterator接口

Iterator也是Java集合框架的成员,主要用于遍历(即迭代访问)Collection集合中的元素,也称为迭代器。

提供的三种方法:
boolean hasNext():返回集合里的下一个元素。
Object next():返回集合里下一个元素。
void remove();删除集合里上一次next方法返回的元素。



public class TestIterator
{
public static void main(String[] args)
{
//创建一个集合
Collection books = new HashSet();

books.add("轻量级J2EE企业应用实战");
books.add("Struts2权威指南");
books.add("基于J2EE的Ajax宝典");

//获取books集合对应的迭代器
Iterator it = books.iterator();

while(it.hasNext())
{
       //未使用泛型,需要强制转换
String book = (String)it.next();

System.out.println(book);

if (book.equals("Struts2权威指南"))
{
it.remove();

    //使用Iterator迭代过程中,不可修改集合元素,下面代码引发异常
    //books.remove(book);

}

//对book变量赋值,不会改变集合元素本身
book = "测试字符串";

}
System.out.println(books);
}
}




程序运行结果:

Struts2权威指南

基于J2EE的Ajax宝典

轻量级J2EE企业应用实战

[基于J2EE的Ajax宝典, 轻量级J2EE企业应用实战]

说明:
(1)通过语句“book = "测试字符串"; ”对迭代变量book进行赋值时,当我们再次输出books集合时,集合里的元素没有任何变化。即当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给迭代变量,而是把集合元素的值传给了迭代变量。
(2)当使用Iterator来访问Collection集合元素时,只有通过Iterator的remove方法删除(it.remove();)上一次next方法返回的集合元素才可以给集合中添加元素(book = "测试字符串"; )。否则引发java.util.ConcurrentModificationExcption异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: