专业编程基础技术教程

网站首页 > 基础教程 正文

Java中的迭代器Iterator的详解

ccvgpt 2024-08-07 18:57:25 基础教程 13 ℃
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);
			}*/
		}
		
		
	}
}

Tags:

最近发表
标签列表