Iterator接口的功能是遍历Collection容器中的元素。

方法:

boolean hasNext():用来判断当前游标后面是否还存在元素,如果存在就返回true,不存在就返回false。

Object next():先返回当前游标右边的元素,然后游标后移一个位置。

void remove():删除最近返回的元素。

从示意图中我们可以看出:游标最开始的位置是在第一个元素的前面。


下面通过一个实例来说明:

public class IteratorTest {

	public static void main(String[] args) {
	
		/*创建一个list*/
	List list = new ArrayList();	
	
	list.add(1);
	list.add(2);
	list.add(3);
	list.add("廖泽民");
	list.add("abc");
	/*调用迭代器方法遍历集合元素*/
	displayByIterator(list);
	
	}
	
	/**
	 * 通过Iterator遍历所有的Collection接口的实现类
	 */
	public static void displayByIterator(Collection collection){
		
		/*创建一个迭代器*/
		Iterator it = collection.iterator();
		/*遍历*/
		while (it.hasNext()){
			
			/*打印元素*/
			System.out.println(it.next());
		}
	}

}

Enumeration和Iterator一样都是遍历集合。

Enumeration中的两个方法:

boolean hashMoreElements():判断是否有更多的元素可以提取,如果有的话就返回true,否则返回false。

Object nextElement():如果至少存在一个可提供的元素,则返回此枚举的下一个元素。

示例:

public class EnumerationTest {

	public static void main(String[] args) {
		
		/*创建一个hashTable*/
		Hashtable hashtable = new Hashtable();
		
		/*向hashTable中添加数据*/
		hashtable.put("id", 1);
		hashtable.put("name", "廖钟民");
		hashtable.put("sex", "男");
		
		/*调用elements()方法将table转换为Enumeration集合*/
		Enumeration enumeration = hashtable.elements();
		
		/*.hashElemnents()判断是否存在更多的元素*/
		while (enumeration.hasMoreElements()){
			/*输出*/
			System.out.println(enumeration.nextElement());
		}

	}

}

Iterator和Enumeration的重要区别:

1:Enumeration中没有删除方法,只有遍历。

2:Enumeration是先进后出,而Iterator是先进先出。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐