Iterator接口介绍和迭代器的代码实现
Iterator接口介绍
iterator又名:迭代器
在程序开发中,经常需要遍历集合中的元素,针对这种需求,JDK专门提供了一个接口,Iterator接口也是Java集合中的一员,但它与Collection,Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代器(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器
Iterator接口的常用方法如下:
- public E next():返回迭代的下一个元素(取出集合中的下一个元素)
- public boolean hasNext():如果仍有元素可以迭代,则返回true(判断集合中还有没有下一个元素,有就返回true,没有就返回false)
迭代器的使用步骤:
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元素
迭代器代码实现
使用集合中的方法iterator()获取迭代器的实现对象,使用Iterator接口接收(多态)
注意:
Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
1.使用Interator接口中的方法hasNext判断还有没有下一个元素
public static void main(String[] args) { Collection<String > list = new ArrayList<>(); list.add("姚明"); list.add("科比"); list.add("詹姆斯"); list.add("社会强"); list.add("兵王强"); //多态 接口 实现对象 Iterator<String> iterator = list.iterator(); boolean b = iterator.hasNext();//使用Interator接口中的方法hasNext判断还有没有下一个元素 System.out.println(b); }
2.使用Interator接口中的方法next取出元素
public static void main(String[] args) { Collection<String > list = new ArrayList<>(); list.add("姚明"); list.add("科比"); list.add("詹姆斯"); list.add("社会强"); list.add("兵王强"); //多态 接口 实现对象 Iterator<String> iterator = list.iterator(); boolean b = iterator.hasNext();//判断集合中下一个元素是否存在 System.out.println(b); //使用interator接口中的next的方法取出元素 String next = iterator.next(); System.out.println(next); b = iterator.hasNext();//判断集合中下一个元素是否存在 System.out.println(b); next = iterator.next(); System.out.println(next); b = iterator.hasNext();//判断集合中下一个元素是否存在 System.out.println(b); next = iterator.next(); System.out.println(next); b = iterator.hasNext();//判断集合中下一个元素是否存在 System.out.println(b); next = iterator.next(); System.out.println(next); b = iterator.hasNext();//判断集合中下一个元素是否存在 System.out.println(b); next = iterator.next(); System.out.println(next); }
发现使用迭代器取出集合中的元素的代码,是一个重复的过程
所以我们可以使用循环优化
不知道集合中有多少元素,使用while循环
循环结束的条件,hasNext方法返回false
public class demg_02 { public static void main(String[] args) { Collection<String > list = new ArrayList<>(); list.add("姚明"); list.add("科比"); list.add("詹姆斯"); list.add("社会强"); list.add("兵王强"); //多态 接口 实现对象 Iterator<String> iterator = list.iterator(); //使用while循环输出 while (iterator.hasNext()){//循环判断语句就是 iterator接口中的判断集合中有没有下一个元素 String next = iterator.next(); System.out.println(next); }
运行接口:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix