迭代器的实现原理

一.迭代器

属于java.util.Iterator接口:迭代器有三个方法:

boolean  hasNext()如果有有元素可以迭代,则返回true。

判断集合中还有没有下一个元素,有就返回true,没有则返回false。

E next()返回迭代的下一个元素。

remove()将迭代器返回的元素删除。

二.迭代器的使用步骤和代码演示

使用步骤:
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元素

代码演示:

package java17.数据结构和List和Set和Collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class dawdwa {
	public static void main(String[] args) {
		Collection<Integer> list = new ArrayList<>();
//		首先我们先创建集合 然后给集合中添加元素
		list.add(10);
		list.add(20);
		list.add(8);
		list.add(7);
		list.add(100);
//		然后我们创建迭代器对象
		Iterator<Integer> i = list.iterator();
//		然后我们通过hasNext()方法判断还有没有下一个元素
		while(i.hasNext()) {
//		如果有下一个元素,则进去这个代码块中使用迭代器的next()方法获取元素
			Integer  i1 = i.next();
//			然后打印输入这个元素
			System.out.print(i1+" ");
		}
		
	}
}

这样我们就使用迭代器对这个进行的遍历。

三.实现原理

在调用Iterator的next方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,当再次调用next方法时,迭代器的索引会指向第二个元素并将该元素返回,依此类推,直到hasNext方法返回false,表示到达了集合的末尾,终止对元素的遍历。

怕很多人不理解这个所以我总结了一下:

Iterator迭代器对象遍历集合时,内部是采用指针的方式来定位集合中的元素,
在调用Iterator的next()方法之前,迭代器指针位于首个元素之前,不会指向任何一个元素,
在调用一个next()方法后给移一位,并且将指向的元素返回,以此类推直到集合的最后一个元素结束,结束循环。(这样是不是很好理解)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值