Java Iterator(迭代器)

Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。

Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。

迭代器 it 的两个基本操作是 next 、hasNext 和 remove。

调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。

调用 it.hasNext() 用于检测集合中是否还有元素。

调用 it.remove() 将迭代器返回的元素删除。

Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下:

import java.util.Iterator; // 引入 Iterator 类

获取一个迭代器

集合想获取一个迭代器可以使用 iterator() 方法:

实例

// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;public class RunoobTest {public static void main(String[] args) {// 创建集合ArrayList<String> sites = new ArrayList<String>();sites.add("Google");sites.add("Runoob");sites.add("Taobao");sites.add("Zhihu");// 获取迭代器Iterator<String> it = sites.iterator();// 输出集合中的第一个元素System.out.println(it.next());}
}

执行以上代码,输出结果如下:

Google

循环集合元素

让迭代器 it 逐个返回集合中所有元素最简单的方法是使用 while 循环:

while(it.hasNext()) {System.out.println(it.next());
}

以下输出集合 sites 中的所有元素:

实例

// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;public class RunoobTest {public static void main(String[] args) {// 创建集合ArrayList<String> sites = new ArrayList<String>();sites.add("Google");sites.add("Runoob");sites.add("Taobao");sites.add("Zhihu");// 获取迭代器Iterator<String> it = sites.iterator();// 输出集合中的所有元素while(it.hasNext()) {System.out.println(it.next());}}
}

执行以上代码,输出结果如下:

Google
Runoob
Taobao
Zhihu

删除元素

要删除集合中的元素可以使用 remove() 方法。

以下实例我们删除集合中小于 10 的元素:

实例

// 引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;public class RunoobTest {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<Integer>();numbers.add(12);numbers.add(8);numbers.add(2);numbers.add(23);Iterator<Integer> it = numbers.iterator();while(it.hasNext()) {Integer i = it.next();if(i < 10) {  it.remove();  // 删除小于 10 的元素}}System.out.println(numbers);}
}

执行以上代码,输出结果如下:

[12, 23]it.remove();  // 删除小于 10 的元素}}System.out.println(numbers);}
}

执行以上代码,输出结果如下:

[12, 23]

Java基础(二):迭代器(Iterator)(含使用方法详解)相关推荐

  1. python的装饰器迭代器与生成器_python3 装饰器、列表生成器、迭代器、内置方法详解等(第四周)...

    前言: 为什么要学习python3? 原因: 1.学习一门语言能力 2.通过该语言能力完成测试自动化以及独立完成自测框架知识 那么我要做什么呢? 1.每天花十个小时完成python3的学习 要在什么地 ...

  2. eclipse java 逆向工程_Mybatis 逆向工程的三种方法详解

    Mybatis 逆向工程 逆向工程通常包括由数据库的表生成 Java 代码 和 通过 Java 代码生成数据库表.而Mybatis 逆向工程是指由数据库表生成 Java 代码. Mybaits 需要程 ...

  3. java kaptcha_java相关:kaptcha验证码使用方法详解

    java相关:kaptcha验证码使用方法详解 发布于 2020-6-7| 复制链接 摘记: 本文为大家分享了kaptcha验证码的使用方法,供大家参考,具体内容如下1.首先在pom.xml文件中导入 ...

  4. Java SHA-256加密的两种实现方法详解

    利用Apache的工具类实现加密,使用commons-codec包中的DigestUtils算法工具类(入参支持字符串.字节数组.文件流等): maven: 1 2 3 4 5 <depende ...

  5. JAVA 静态变量,静态方法,main方法详解(韩顺平)

    目录 一.类变量 1.类变量的引入 2.类变量的定义 3.类变量的特点 4.如何定义类变量 5.如何访问类变量 6.类变量使用细节 二.类方法 1.基本介绍 2.定义类方法 3.类方法的访问 4.类方 ...

  6. 【Java 基础】JDK API Documentation 教程使用详解

    文章目录 一.JDK API是什么 二.获取文档 三.文档查看教程 1.大纲 2.目录结构查看 3.包查看 4.类查看 5.详细使用信息 相关 一.JDK API是什么   API(Applicati ...

  7. Java基础篇:四种代码块详解

    所谓代码块,就是用大括号{}将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法.一般来说,代码块是不能单独运行的,它必须有运行主体.在Java中代码块主要分为四种:普通代码块.静态代码块. ...

  8. android java 指针异常处理,Android自定义抛出异常的方法详解

    前言 在android开发过程中,我们经常遇到异常的问题,崩溃抛出异常的时候,是非常令人烦闷的.但是异常有一个好处,使得app能在编译的时候给我们提供一些bug信息,有时可能比较模糊,有时可能很精准, ...

  9. Java 实现sha_Java实现SHA算法的方法详解

    本文实例讲述了Java实现SHA算法的方法.分享给大家供大家参考,具体如下: 一 简介 安全散列算法 固定长度摘要信息 二 SHA算法 SHA-1.SHA-2(SHA-224.SHA-256.SHA3 ...

最新文章

  1. Nodejs服务器端脚本
  2. Centos 7 意外断电如何处理
  3. 基于Cobbler实现多版本系统批量部署
  4. MySQL删除匿名用户,保证登录安全
  5. NSArray 简单细说
  6. 计算机应用基础 聂敏,1. 在Excel中,公式“COUNT(C2:E3)”的含义是:( )。...
  7. 【Tiny4412】烧写Uboot到EMMC
  8. JavaWeb学习总结(二):Tomcat服务器学习和使用(一)
  9. 多线程—Lock、Condition、ReentrantLock、ReentrantReadWriteLock
  10. wcf学习(一):预览
  11. js经纬度十进制度和度分秒互转
  12. 文本框里面加删除按钮
  13. rocksdb-参数配置
  14. 电信各种视频免流卡申请地址合集附地址失效解决方法
  15. ‘海外/国外‘地区微博签到shu据(正题在第二部分)
  16. Vscode鼠标乱跳
  17. FastUnit超简单摘抄
  18. python解决百钱百鸡问题
  19. supermap开发帮助文档链接
  20. mac风扇一直响_您如何找出哪个计算机风扇被响了?

热门文章

  1. 2021~2022 学年第二学期《信息安全》考试试题(A 卷)
  2. 计算机二级C语言知识点大全,弄懂这些题集所含知识点稳过(三)
  3. 毕业快乐-纪念四年大学时光
  4. 使用MQ的时候,怎么确保消息100%不丢失?
  5. android调用系统图片剪裁,兼容小米
  6. lalaljhjje
  7. oracle 所有字母大写,Oracle函数(把每个单词首个字母变为大写)
  8. 升级到Win1018363.815后,魔兽争霸3不能玩了,提示 不能初始化DirectX 解决办法
  9. 加快推进工业互联网,图扑“智”绘发展新蓝图
  10. 罗马复兴各民族兵种详细参数——埃及篇