在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的使用相关推荐

  1. iterator 怎么使用甀_迭代器(Iterator)的使用方法

    迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价 ...

  2. Babel下的ES6兼容性与规范

    ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问题,但大家仍很疑惑,使用ES6会有哪些兼容性问题 ...

  3. 184_刘发顺_Java核心编程

    Java核心编程 Java 技术栈: Java基础 Java面向对象:Java 是一种面向对象的语言,它对对象中的类.对象.继承.封装.多态.接口.包等均有很好的支持.为了简单起见,Java 只支持类 ...

  4. iterator adapter inserter

    1.insert_iterator 这个adapter将iterator的赋值(assign)操作变为安插(insert操作),并将iterator右移一个位置.如此便可让user连续执行[表面上as ...

  5. 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器

    目录 iterator迭代器 使用迭代器遍历集合 iterator迭代器 scala针对每一类集合都提供了一个迭代器(iterator)用来迭代访问集合 使用迭代器遍历集合 使用iterator方法可 ...

  6. Java Iterator 使用

    学而时习之,温故而知新. 迭代器是一种模式.详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到这个对象,使用迭代器就可以遍 ...

  7. Java技术——Iterator和Enumeration的不同

    0. Iterator和Enumeration的不同 (1)两者的函数接口不同 Enumeration只有2个函数接口,通过Enumeration我们只能读取集合的数据,而不能对数据进行修改. Ite ...

  8. Rocksdb iterator 的 Forward-scan 和 Reverse-scan 的性能差异

    前言 最近在读 MyRocks 存储引擎2020年的论文,因为这个存储引擎是在Rocksdb之上进行封装的,并且作为Facebook 内部MySQL的底层引擎,用来解决Innodb的空间利用率低下 和 ...

  9. Rocksdb Iterator实现:从DBIter 到 TwoLevelIter 的漫长链路

    文章目录 1. 迭代器简单介绍 2. 迭代器用户态相关接口 3. 迭代器内部架构 4. 迭代器的入口实现 4.1 DBIter 4.2 MergingIterator 4.3 Memtable系列It ...

最新文章

  1. 徐尧:如何搭建好的数据指标体系?
  2. VS2005 / windows sdk7.1配置
  3. php测试网络通不通函数,PHP检查库或函数是否可用的方法
  4. Ubuntu下无法使用Secure_CRT连接服务器
  5. 目录 | 数据结构与剑指Offer系列推文合集
  6. [html] 你有使用过ins标签吗?说说它的用途
  7. mysql按日期获取最新_mysql获取按日期排序获取最新的记录
  8. php病毒图片后缀名,脚本图片类后门病毒的完美使用方法
  9. springCloud - 第12篇 - 服务监控 Hystrix 面板
  10. 怎么创建计算机快捷方式到桌面两种方法,使用脚本主机创建Windows快捷方式 - Windows Client | Microsoft Docs...
  11. 备份恢复,DBA最后一道防线,你完全掌握了吗?
  12. pl/sql实现打印九九乘法表
  13. 满分的项目经理,个人觉得很有道理,所以[转载]
  14. 关于python中enumerate和zip函数的用法及举例
  15. 【python】入门oj
  16. 惯性系统常用坐标系_惯性技术常用坐标系
  17. React Native --props使用之吹气球例子
  18. [渝粤教育] 西南科技大学 民法学 在线考试复习资料
  19. 区块链ICO:互联网进化的驱动力
  20. Would you like to share anonymous usage data about this project with the Angular Team at Google unde

热门文章

  1. 95-36-210-ChannelHandler-系统Channel-TimeoutHandler
  2. 【Flink】Flink 小知识点 Flink 同时 保存 offset 到backend 和 kafka 内置 topic
  3. 【java】java 8 的一些集合操作
  4. 【zookeeper】zookeeper shell 删除路径 卡死
  5. Memcache监控小工具stats命令
  6. 【Flink】Flink自带的测试类 AbstractStreamOperatorTestHarness
  7. HDFS block丢失过多进入安全模式(safe mode)的解决方法
  8. java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是为什么
  9. 云计算教程学习入门视频课件:云计算架构参考模型
  10. 一个基于 SpringBoot 开源的小说和漫画在线阅读网站,简洁大方、强烈推荐