iterator 怎么使用甀_Iterator的使用
在Java编程中,集合时使用非常频繁的数据类型,而在遍历集合中所有元素时,Java推荐使用迭代器模式,Java中内部定义了一个接口Iterator来实现简单的迭代操作。
Iterator接口中定义了三个方法:
hasNext():检查集合中是否还有元素,如果有则返回true
next():返回集合中的下一个元素
remove():删除集合中最后一个返回的元素
使用Iterator的注意事项:
在获取集合中下一个元素之前一定要先使用hasNext()进行判断集合中是否还有元素,否则则可能会抛出NoSuchElementException
使用next()方法返回的元素是从集合中随机取出的,同一代码在多次运行时所取出的元素顺序可能不同
使用remove()方法之前必须先调用next()方法,因为删除的是最后一个返回的元素。若没有返回过元素,则没有删除的对象
在需要使用多次迭代输出同一集合中元素时,在输出前都需要重新移动迭代器的首指向
例:
package dg;
import java.util.*;
public class CollectionTest{
public static void main(String[] args){
Collection c = new HashSet();
c.add("AAAAAAAAAAA");
c.add("BBBBBBBBBBB");
c.add("CCCCCCCCCCC");
Iterator i = c.iterator();//Iterator使用方法1:while循环
while(i.hasNext()){
System.out.println(i.next());//迭代输出
}
System.out.println("集合中元素个数为:" + c.size());
System.out.println("----------------------------");
i = c.iterator();//上面代码执行后,iterator已指向末尾,此语句将i指向c的开头
if(i.hasNext()){//判断是否有下一个数
System.out.println(i.next());
i.remove();
}
System.out.println("----------------------------");
for(Iterator it = c.iterator();it.hasNext();){//Iterator使用方法2:for循环
System.out.println(it.next());
}
System.out.println("使用remove()后集合中元素个数为:" + c.size());
}
}
代码运行结果:
BBBBBBBBBBB
CCCCCCCCCCC
AAAAAAAAAAA
集合中元素个数为:3
----------------------------
BBBBBBBBBBB
----------------------------
CCCCCCCCCCC
AAAAAAAAAAA
使用remove()后集合中元素个数为:2
iterator 怎么使用甀_Iterator的使用相关推荐
- iterator 怎么使用甀_迭代器(Iterator)的使用方法
迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价 ...
- Babel下的ES6兼容性与规范
ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问题,但大家仍很疑惑,使用ES6会有哪些兼容性问题 ...
- 184_刘发顺_Java核心编程
Java核心编程 Java 技术栈: Java基础 Java面向对象:Java 是一种面向对象的语言,它对对象中的类.对象.继承.封装.多态.接口.包等均有很好的支持.为了简单起见,Java 只支持类 ...
- iterator adapter inserter
1.insert_iterator 这个adapter将iterator的赋值(assign)操作变为安插(insert操作),并将iterator右移一个位置.如此便可让user连续执行[表面上as ...
- 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器
目录 iterator迭代器 使用迭代器遍历集合 iterator迭代器 scala针对每一类集合都提供了一个迭代器(iterator)用来迭代访问集合 使用迭代器遍历集合 使用iterator方法可 ...
- Java Iterator 使用
学而时习之,温故而知新. 迭代器是一种模式.详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到这个对象,使用迭代器就可以遍 ...
- Java技术——Iterator和Enumeration的不同
0. Iterator和Enumeration的不同 (1)两者的函数接口不同 Enumeration只有2个函数接口,通过Enumeration我们只能读取集合的数据,而不能对数据进行修改. Ite ...
- Rocksdb iterator 的 Forward-scan 和 Reverse-scan 的性能差异
前言 最近在读 MyRocks 存储引擎2020年的论文,因为这个存储引擎是在Rocksdb之上进行封装的,并且作为Facebook 内部MySQL的底层引擎,用来解决Innodb的空间利用率低下 和 ...
- Rocksdb Iterator实现:从DBIter 到 TwoLevelIter 的漫长链路
文章目录 1. 迭代器简单介绍 2. 迭代器用户态相关接口 3. 迭代器内部架构 4. 迭代器的入口实现 4.1 DBIter 4.2 MergingIterator 4.3 Memtable系列It ...
最新文章
- 徐尧:如何搭建好的数据指标体系?
- VS2005 / windows sdk7.1配置
- php测试网络通不通函数,PHP检查库或函数是否可用的方法
- Ubuntu下无法使用Secure_CRT连接服务器
- 目录 | 数据结构与剑指Offer系列推文合集
- [html] 你有使用过ins标签吗?说说它的用途
- mysql按日期获取最新_mysql获取按日期排序获取最新的记录
- php病毒图片后缀名,脚本图片类后门病毒的完美使用方法
- springCloud - 第12篇 - 服务监控 Hystrix 面板
- 怎么创建计算机快捷方式到桌面两种方法,使用脚本主机创建Windows快捷方式 - Windows Client | Microsoft Docs...
- 备份恢复,DBA最后一道防线,你完全掌握了吗?
- pl/sql实现打印九九乘法表
- 满分的项目经理,个人觉得很有道理,所以[转载]
- 关于python中enumerate和zip函数的用法及举例
- 【python】入门oj
- 惯性系统常用坐标系_惯性技术常用坐标系
- React Native --props使用之吹气球例子
- [渝粤教育] 西南科技大学 民法学 在线考试复习资料
- 区块链ICO:互联网进化的驱动力
- Would you like to share anonymous usage data about this project with the Angular Team at Google unde
热门文章
- 95-36-210-ChannelHandler-系统Channel-TimeoutHandler
- 【Flink】Flink 小知识点 Flink 同时 保存 offset 到backend 和 kafka 内置 topic
- 【java】java 8 的一些集合操作
- 【zookeeper】zookeeper shell 删除路径 卡死
- Memcache监控小工具stats命令
- 【Flink】Flink自带的测试类 AbstractStreamOperatorTestHarness
- HDFS block丢失过多进入安全模式(safe mode)的解决方法
- java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是为什么
- 云计算教程学习入门视频课件:云计算架构参考模型
- 一个基于 SpringBoot 开源的小说和漫画在线阅读网站,简洁大方、强烈推荐