Iterator与ListIterator迭代器

简介: Iterator与ListIterator迭代器

Iterator与ListIterator迭代器

前言

迭代器的作用就是用于遍历我们的集合,从集合中取数据。

迭代器分为两种:

1.Iteraitor:可以来迭代Collection下的所有集合,List和Set ;

2.ListIterator:只能迭代List下的集合;

Iterator方法

1.iterator.hasNext():判断下一个位置有没有数据,返回boolean类型的值

2.iterator.next():将指针箭头下移一格并获取数据

3.iterator.remove():删除当前指针箭头指向的数据

4.iterator.add(E):在指针箭头指向的位置添加数据E,后面数据下移

5.iterator.set(E):把指针箭头指向的数据改为E

注意的是:

刚开始,指针箭头指向的位置是初始数据位置的前一格;

ListIterator

ListIterator其实只是Iterator的子类;

ListIterator方法

除了拥有Iterator的所有方法外,它还有自己的方法:

1.ListIterator.previous():将指针箭头上移一格并获取数据

2.ListIterator.hasPrevious():判断上一个位置有没有数据,返回boolean类型的值

3.通过List集合的listlterator()方法得到。

4.允许任意方向遍历列表,在迭代期间修改列表,并获取列表中迭代器的当前位置。

代码示例:

public static void main(String[] args) {
    //创建集合对象
List<String> list = new ArrayList<String>();
//添加元素
list.add("hello");
list.add("world");
list.add("java");
    //得到列表迭代器
     //得到列表迭代器
ListIterator<String> lit = list.listIterator();
while (lit.hasNext()) {
String s = lit.next();
System.out.println(s);
}
//逆向遍历
while (lit.hasPrevious()) {
String s2 = lit.previous();
 System.out.println(s2);
}
    //在判断的基础上添加元素
     while (lit.hasNext()){
 String s = lit.next();
 if (s.equals("world")){
lit.add("javaee");
}
 }
System.out.println(list);
}
相关文章
|
1月前
|
人工智能 数据可视化 安全
把 Claude Cowork 换成开源版——OpenWork 让团队 AI 配置不再各配各的
OpenWork是开源AI工作流中枢,以MCP协议统一管理团队的Skill、API连接与模型服务,支持Codex/Claude/Cursor等多客户端共享能力,提供Den控制台实现权限管控、插件分发与私有化部署,让AI工具配置成为可复用、可审计的团队资产。(239字)
206 1
|
2月前
|
人工智能 JSON 文字识别
金融AI技能库:104个开源Skill即插即用
零API费用的金融AI技能库:104个场景纯Python实现,毫秒级响应 当金融AI遇上"账单焦虑" 金融行业的AI落地,存在一个被长期忽视的悖论:业务方要的是"即时可用",技术方给的是"先接API再说"。 一个发票查验场景,接入第三方OCR服务,单次调用0.3元,日均10万笔,月账单9万。一个财报分析需求,调用大模型API,单次Token消耗折合0.8元,季报期间批量处理500份,
|
Java 机器人 程序员
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
981 2
|
程序员 开发工具 Windows
编程必备,程序员应该都知道的7款文本编辑器
正如一个作家需要一个文字处理器来写故事,一个艺术家需要画布来创作,同样的,如果想编程,你会需要一个地方来写代码。程序员在哪里编写代码?最常见的就是使用文本编辑器了吧。下文列出了 7 个主流的文本编辑器,不出意外的话,开发人员应该都有所了解,至少听说过。7款文本编辑器,总有一款会适合你。
11223 114
JRebel and xrebel 热部署插件 激活时出现LS client not configued 报错
JRebel and xrebel 热部署插件 激活时出现LS client not configued 报错
1183 0
|
缓存 JavaScript 前端开发
vue3+elementplus后台管理系统,实现用户登录
vue3+elementplus后台管理系统,实现用户登录
|
算法
动态规划算法学习三:0-1背包问题
这篇文章是关于0-1背包问题的动态规划算法详解,包括问题描述、解决步骤、最优子结构性质、状态表示和递推方程、算法设计与分析、计算最优值、算法实现以及对算法缺点的思考。
1005 2
动态规划算法学习三:0-1背包问题
|
设计模式 Java 程序员
《On Java 8》中文版,又名《Java 编程思想》中文第五版
《On Java 8》中文版,又名《Java 编程思想》中文第五版
919 0
|
JavaScript
【报错】Cannot read property ‘parseComponent‘ of undefined
【报错】Cannot read property ‘parseComponent‘ of undefined
1308 2

热门文章

最新文章