Java Iterator(迭代器)

如果需要使用iterator类需要从java.util包中引入它

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

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

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

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

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

集合获取一个迭代器用iterator()方法

package m;

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

循环集合元素让迭代器it逐个返回集合中所有元素用while循环

package m;

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

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

package m;

//引入 ArrayList 和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator; public class iterator {
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);
}
}

最新文章

  1. 修复jLink V9固件小记
  2. 电改:OPower资料调研
  3. C# DataGridView显示行号的三种方法
  4. ClassLoad的加载过程及分析
  5. Python深复制浅复制or深拷贝浅拷贝
  6. 01_Java解析XML
  7. Jquery UI dialog 传参
  8. VS Code 快捷键(中英文对照版)
  9. 输入和输出--java的NIO
  10. ftp服务配置
  11. BAT脚本/Dos 改ip地址
  12. SourceTree推送分支时遇到ArgumentException encountered错误的解决办法
  13. 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
  14. freemarker 简单操作
  15. cubeui
  16. 从0移植uboot(五) _实现串口输出
  17. 工具SQL
  18. Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题
  19. 关于value_count
  20. linq to sql 项目移植后,数据库实体类需要重新创建?

热门文章

  1. Spring:所有依赖项注入的类型
  2. linux shell脚本中的开头#!/bin/bash的含义
  3. spark structured-streaming 最全的使用总结
  4. 装了这几个IDEA插件,基本上一站式开发了!
  5. WPF进阶技巧和实战09-事件(2-多点触控)
  6. C#中base 和this
  7. MarkDown学习内容总结
  8. 监控框架 - prometheus - 参数指标
  9. rabbitMQ报错:Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method:
  10. SVD专题1 算子的奇异值分解——矩阵形式的推导