网站首页 > java教程 正文
1什么是迭代器
什么是迭代器
一个用来遍历集合的对象,该对象是实现了Iterator接口
只要是实现了Iterator接口的对象都是迭代器对象
如何获得迭代器
通过调用集合对象的该方法:Iterator<E> iterator()
Iterator接口中的常用方法
boolean hasNext(); 判断是否有下一个元素,如果有则返回true,否则false
E next(); 先将指针下移指向下一个元素,然后将当前指针指向位置的元素作为返回值
迭代器的使用注意事项
java.util.NoSuchElementException:没有元素异常
如果没有元素可迭代了仍然调用next方法获得元素,则会抛出该异常
2迭代器的好处
屏蔽了众多集合的内部实现,对外提供统一的遍历方式
只要是单列集合都可以使用迭代器遍历
3 Iterator常用方法
boolean hasNext(); 判断是否有下一个元素,如果有则返回true,否则false
E next(); 先将指针下移指向下一个元素,然后将当前指针指向位置的元素作为返回值
示例
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorDemo {
public static void main(String[] args){
// 创建集合对象
ArrayList<String> list = new ArrayList<>();
list.add("AA");
list.add("BB");
list.add("CC");
list.add("DD");
// 使用循环改进
Iterator<String> it = list.iterator();
while(it.hasNext()){ // true
System.out.println(it.next());
}
/* 没有使用循环
// 使用迭代器遍历集合
Iterator<String> it = list.iterator();
System.out.println(it.hasNext());
System.out.println(it.next());
System.out.println(it.hasNext());
System.out.println(it.next());
System.out.println(it.hasNext());
System.out.println(it.next());
System.out.println(it.hasNext());
System.out.println(it.next());
System.out.println(it.hasNext());
System.out.println(it.next());
*/
// 普通for遍历
/* for(int index = 0;index < list.size();index++){
// 根据索引获得集合
String str = list.get(index);
System.out.println(str);
}*/
}
}
放开相应代码测试
- 上一篇: java迭代器iterator
- 下一篇: 优秀程序员必备技能:设计模式之——迭代器模式
猜你喜欢
- 2025-01-10 Java 中经常被提到的 SPI 到底是什么?
- 2025-01-10 23种设计模式总结详解(全23种)
- 2025-01-10 Java 中的反应式编程 (RxJava)
- 2025-01-10 Java Stream
- 2025-01-10 推荐给 Java 初学者硬核书籍,亲身经历让你少走弯路
- 2025-01-10 Spring Boot集成AJ-Captcha实现滑动验证码功能
- 2025-01-10 java.util.ArrayList 原理详细介绍
- 2025-01-10 Java ArrayList用法详解附代码示例
- 2025-01-10 Java SPI详解
- 2025-01-10 Qt——容器类
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)