package dao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* 本类讲解Java中Iterator接口(迭代器)遍历Collection集合
*/
public class Iteratordemo {
public static void main(String[] args) {
//定义一个Collection集合对象
//使用时同样要记得导入包
Collection books = new ArrayList();
//给集合中添加元素
books.add("Asp.net");
books.add("Html5");
books.add("CSS3");
books.add("JAVASCRIPT");
books.add("SQLSERVER");
//创建books集合的Iterator迭代器用于遍历集合
Iterator itBook = books.iterator();
System.out.println("------迭代输出的结果为-----");
//开始遍历 用迭代器的hasNext方法判断 元素是否被遍历
while(itBook.hasNext())
{
//获取每一个元素 next方法返回的类型是object类型(因为集合中元素的默认类型均为object)
String temp = itBook.next().toString();//所以需要强制转换为字符串
//输出每一个元素
System.out.println(temp);
/*************************以下这段代码要也别注意**********************/
System.out.println("------加上下列代码程序将出现运行时异常-------");
//假设我们需要在遍历的时候移除集合中的某一个值 看看行不行呢?
if(temp.equals("SQLSERVER"))
{
//存在则移除 (在这个地方假设我们已经找到了SQLSERVER这个元素
books.remove(temp);
}else
{
//没有找到呢就添加一个新的元素
books.add("哈哈哈哈哈");
}
//大家会看到 当加上这段代码之后呢 程序就出现异常了,没有加的时候就是正常的
//为什么呢?不是说集合有add和remove方法呢 这怎么就不行了呢?
//答案是因为在遍历Collection集合时,集合中的元素是不可以被改变的
//也就是说Collection集合中的值,不能修改 也不能删除 和 添加新的元素
/************************以上这段代码要也别注意************************/
}
System.out.println("-----------下面是用foreach循环来遍历集合------------");
//下面用foreach循环来遍历集合
for(Object info:books)
{
String temp = info.toString();
System.out.println(temp);
//同样的道理 用foreach循环也不可不能修元素的值 也不能删除 和 添加新的元素
//例如
/*if(temp.equals("SQLSERVER"))
{
//存在则移除 (在这个地方假设我们已经找到了SQLSERVER这个元素
books.remove(temp);
}*/
}
}
}