Java的Iterator迭代器

当我们要显示List收集的所有对象,也许你会这么写:

List<Integer> list=new ArrayList<>();
		list.add(1);
		list.add(2);
		list.add(3);
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}

这个方法适合所有操作List接口的对象,如ArrayList、LinkedList等。如果要让你写个方法显示Set收集所有对象呢,你改怎样写?可能你会这样写:

Set<Integer> list=new HashSet()<>();
		list.add(1);
		list.add(2);
		list.add(3);
		for (Integer integer : list) {
			System.out.println(integer);
		}

这个方法适用于所有操作Set接口的对象,如HashSet、TreeSet等。但是现在让你写一个可以显示Queue收集的所有对象,你该怎样写?还能用上面的两种方法写吗?显然这是不符合的。事实上,无论是List、Set还是Queue,这些接口都继承了Collection接口,而这个接口的父接口为Iterable,所以都拥有了iterator的行为。
那么,如何使用迭代器呢?通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。做到这一点最简单的方法是采用一个迭代器,它是一个对象,实现了Iterator 接口或ListIterator接口。迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator继承了Iterator,以允许双向遍历列表和修改元素。
Iterator()方法会返回Iterable接口的操作对象,这个对象包括Collection收集的所有对象,你可以使用Iterator的hasNext()方法看看有无下一个对象,若有的话,在使用next()取得下一个对象。因此,无论List、Set、Queue还是任何Collection,都可以使用以下的方法来显示收集的对象:

Set<Integer> list=new HashSet<>();
		list.add(1);
		list.add(2);
		list.add(3);
		Iterator<Integer>iterator=list.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值