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);
}
相关文章
|
编解码
一文详解 URLEncode
使用浏览器进行Http网络请求时,若请求query中包含中文,中文会被编码为 `%+16进制+16进制`形式,但你真的深入了解过,为什么要进行这种转义编码吗?编码的原理又是什么?
2136 0
一文详解 URLEncode
|
前端开发 Java 关系型数据库
记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】
记录:Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl...解决方案【亲测有效】
7135 0
JRebel and xrebel 热部署插件 激活时出现LS client not configued 报错
JRebel and xrebel 热部署插件 激活时出现LS client not configued 报错
1115 0
|
缓存 NoSQL 应用服务中间件
SpringCloud基础8——多级缓存
JVM进程缓存、Lua语法、OpenResty、Nginx本地缓存、缓存同步、Canal
SpringCloud基础8——多级缓存
|
Java 机器人 程序员
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
879 2
|
算法
动态规划算法学习三:0-1背包问题
这篇文章是关于0-1背包问题的动态规划算法详解,包括问题描述、解决步骤、最优子结构性质、状态表示和递推方程、算法设计与分析、计算最优值、算法实现以及对算法缺点的思考。
920 2
动态规划算法学习三:0-1背包问题
|
设计模式 Java 程序员
《On Java 8》中文版,又名《Java 编程思想》中文第五版
《On Java 8》中文版,又名《Java 编程思想》中文第五版
839 0
|
JavaScript
【报错】Cannot read property ‘parseComponent‘ of undefined
【报错】Cannot read property ‘parseComponent‘ of undefined
1244 2
|
开发框架 数据管理 .NET
C#第三方实验室LIMS管理系统(成品源码)
LIMS系统的功能根据实验室的规模和任务而有所不同,其系统主要功能包括:系统维护、基础数据编码管理,样品管理、数据管理、报告管理、报表打印、实验材料管理、设备管理等。它可以取代传统的手工管理模式而给检测实验室带来巨大的变化,提高检测实验室的整体业务能力和工作效率,由此全面提高检测实验室的管理水平
449 0