Java基础--Iterator

一、为什么要使用迭代器?

请设想一样,一段代码,之前是用于对List操作的,而现在需要这段代码对Set进行操作,该怎么办呢?大家可能想到再编写对Set进行操作的代码就可以了,然后此时如果我们使用迭代器将会显得代码更加优雅,因为迭代器可以针对不同的集合类对象进行操作,而根本不管集合类到底是什么。

二、什么是迭代器?

迭代器是一个对象,它的功能是遍历并选择集合中的对象,而并不需要知道该集合到底是什么类型的。

三、迭代器中包含的方法:

(1)iterator():用于返回容器的一个Iterator。

(2)hasNext():用于判断集合中是否还有元素。

(3)next():用来获取集合的下一个元素。

(4)remove():用来移除集合中的元素。注意:remove()方法必须用在next()方法之后。

四、代码例子:

 

package com.lt.iterator;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

/**
 * 演示类:演示迭代器的使用
 * @author Administrator
 *
 */
public class IteratorDemo {
	public static void display(Iterator<Pet> iterator){
		while(iterator.hasNext()){
			Pet pet=iterator.next();
			System.out.println(pet);
		}
	}
	
	public static void main(String[] args) {
		List<Pet> list=new ArrayList<Pet>();
		list.add(new Dog());
		list.add(new Cat());
		
		Set<Pet> set=new HashSet<Pet>();
		set.add(new Dog());
		set.add(new Cat());
		
		display(list.iterator());
		display(set.iterator());
	}
}

class Pet{
	@Override
	public String toString() {
		return "Pet";
	}
}

class Dog extends Pet{
	@Override
	public String toString() {
		return "Dog";
	}
}

class Cat extends Pet{
	@Override
	public String toString() {
		return "Cat";
	}
}

 五、总结

 

从上面的代码我们可以看出display()方法仅仅出入一个迭代器,而并不需要知道是什么产生的迭代器。这就是使用迭代器的好处。
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值