集合元素的遍历操作,使用迭代器Iterator接口
1.内部的方法:hasNext() 和 next()
推荐的方式:
//hasNext():判断是否还有下一个元素
while(iterator.hasNext()){
//next():①指针下移 ②将下移以后集合位置上的元素返回
System.out.println(iterator.next());
}
2.集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
注意两种错误方式:
//错误方式一:
Iterator iterator = coll.iterator();
while((iterator.next()) != null){
System.out.println(iterator.next());
}
解析:while中的iterator.next()已经返回来集合中第一个数,接着输出语句中的iterator.next()打印了集合中的第二个元素。然后又回到while中的iterator.next(),如此往复,知道遍历完毕。打印的结果都是隔一个元素打印,并且最后会报错,越界。
//错误方式二:
//集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
while (coll.iterator().hasNext()){
System.out.println(coll.iterator().next());
}
解析:每次调用iterator()方法都得到一个全新的迭代器对象,每次都是打印集合第一个元素,并且是死循环。
3.内部定义了remove(),可以在遍历的时候,删除集合中的元素。此方法不同于集合直接调用remove()
jdk 5.0 新增了foreach循环,用于遍历集合、数组
public void test1(){
Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new Person("Jerry",20));
coll.add(new String("Tom"));
coll.add(false);
//for(集合元素的类型 局部变量 : 集合对象)
//内部仍然调用了迭代器。
for(Object obj : coll){
System.out.println(obj);
}
}
最新文章
- 创建一个swift项目
- 第十二届浙江省大学生程序设计大赛-May Day Holiday 分类: 比赛 2015-06-26 14:33 10人阅读 评论(0) 收藏
- 在PC端或移动端应用中接入商业QQ的方法
- WCF 传输和接受大数据
- poj 2441 Arrange the Bulls(状态压缩dp)
- (转)iOS7界面设计规范(9) - UI基础 - 动画
- 仍需";敬请期待";的微信沃卡
- Online Judge(OJ)搭建——1、项目介绍
- 尽量用pass-by-reference-to-const(const引用)替换pass-by-value(传值)
- 关于SELinux
- mysql之数据库添加索引优化查询效率
- C语言函数-socket
- 快速解决PL/SQL Developer过期问题(无需注册码等复杂操作)
- RabbitMQ系列(五)使用Docker部署RabbitMQ集群
- Trace 2018徐州icpc网络赛 (二分)(树状数组)
- lumion制作海上明月5.29
- Centos6.5下VNC Server配置
- [转]ASP.NET Core 十种方式扩展你的 Views
- Eclipse下使用Stanford CoreNLP的方法
- MAC OS 命令行使用详解【转】
热门文章
- 使用python3.7和opencv4.1来实现人脸识别和人脸特征比对以及模型训练
- 内存问题难定位,那是因为你没用ASAN
- MySQL为什么";错误";选择代价更大的索引
- 一步一图带你深入剖析 JDK NIO ByteBuffer 在不同字节序下的设计与实现
- idea+SpringBoot使用过程中的问题集合
- C#/VB.NET 创建PDF/UA文件
- silk-GUI图形界面开发一个词典
- mac M1通过homebrew安装python3报错Error: Command failed with exit 128: git
- Java数据类型扩展及面试题讲解
- Python自学教程12-类和对象怎么用