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. Crawler:反爬虫机制之基于urllib库+伪装浏览器+代理访问(代理地址随机选取)+实现下载某网址上所有的图片到指定文件夹
  2. Usermod 命令详解
  3. 计算凸多边形面积的算法
  4. java私有成员的访问_java – 使用私有成员或公共访问器的方法
  5. 计算机科学与技术做什么实验,计算机科学与技术专业实验教学大纲
  6. QueryDSL介绍
  7. 端口扫描工具是什么?端口扫描工具有什么用
  8. 小波变换matlab加密,混沌和小波变换的图像加密压缩算法
  9. python取出字典重复值_从字典中提取重复值
  10. win10系统安装到服务器失败怎么回事,小编教你win10安装失败怎么办
  11. 能给客户带来什么价值_您给公司带来什么价值?
  12. 计算机被填充背景花束纹理在那,为艺术字设置纹理填充的两种方法
  13. 同余原理与丢番图方程
  14. snpslmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No su
  15. 尚硅谷的Netty介绍(一)
  16. 给网页质量进行瘦身的办法-金瑞帆建站
  17. 拒绝调包 手写实现神经网络(复习专用)
  18. python求最小公倍数_Python实现的求解最小公倍数算法示例
  19. 查看java进程内存占用情况
  20. 熊猫烧香案主犯编出杀毒程序

热门文章

  1. 2023年最新QQ设置彩色昵称和动态头像
  2. pymongo 存取
  3. java项目 异常如何解决方案,java 项目
  4. 凌动智行(前网秦)关于媒体发布前创始人、董事会和管理层调整不实新闻的声明...
  5. 证件照像素大小怎么调?调整像素大小方法详解
  6. 蓝莓温室智能灌溉系统功能
  7. 【前端】Vue+Element UI案例:通用后台管理系统-登陆不同用户显示不同菜单、动态添加路由
  8. 威固打造变形金刚联名巡航标 为车主创造不凡品牌体验
  9. 海关总署:2018年中国进口增长12.9% 保持良好态势
  10. sprintf_s的用法探究