云沙

博客园 首页 联系 订阅 管理

在Java编程中,集合时使用非常频繁的数据类型,而在遍历集合中所有元素时,Java推荐使用迭代器模式,Java中内部定义了一个接口Iterator来实现简单的迭代操作。

Iterator接口中定义了三个方法:

  hasNext():检查集合中是否还有元素,如果有则返回true

  next():返回集合中的下一个元素

  remove():删除集合中最后一个返回的元素

使用Iterator的注意事项:

  1. 在获取集合中下一个元素之前一定要先使用hasNext()进行判断集合中是否还有元素,否则则可能会抛出NoSuchElementException
  2. 使用next()方法返回的元素是从集合中随机取出的,同一代码在多次运行时所取出的元素顺序可能不同
  3. 使用remove()方法之前必须先调用next()方法,因为删除的是最后一个返回的元素。若没有返回过元素,则没有删除的对象
  4. 在需要使用多次迭代输出同一集合中元素时,在输出前都需要重新移动迭代器的首指向

例:

package dg;

import java.util.*;
public class CollectionTest{
	public static void main(String[] args){
		Collection<String> c = new HashSet<String>();
		c.add("AAAAAAAAAAA");
		c.add("BBBBBBBBBBB");
		c.add("CCCCCCCCCCC");
		Iterator i = c.iterator();//Iterator使用方法1:while循环
		while(i.hasNext()){
			System.out.println(i.next());//迭代输出	
		}
		System.out.println("集合中元素个数为:" + c.size());
		System.out.println("----------------------------");
		i = c.iterator();//上面代码执行后,iterator已指向末尾,此语句将i指向c的开头
		if(i.hasNext()){//判断是否有下一个数
			System.out.println(i.next());
			i.remove();
		}
		System.out.println("----------------------------");
		for(Iterator it = c.iterator();it.hasNext();){//Iterator使用方法2:for循环
			System.out.println(it.next());	
		}
		System.out.println("使用remove()后集合中元素个数为:" + c.size());
	}	
}

 代码运行结果:

BBBBBBBBBBB
CCCCCCCCCCC
AAAAAAAAAAA
集合中元素个数为:3
----------------------------
BBBBBBBBBBB
----------------------------
CCCCCCCCCCC
AAAAAAAAAAA
使用remove()后集合中元素个数为:2

 

 

posted on 2010-10-29 14:28  fragrancloud  阅读(2463)  评论(1编辑  收藏  举报