Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口
2024-10-21 16:15:41
通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口。迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator 继承了Iterator,以允许双向遍历列表和修改元素。Iterator和ListIterator都是泛型接口,它们的 声明:
interface Iterator<E>
interface ListIterator<E>
default void forEachRemaining(Consumer<? super E> action) |
对于集合中每个未处理的元素,执行action指定的动作(JDK8新增) |
boolean hasNext() |
如果还有更多元素,就返回true,否则返回false |
E next() | 返回下一个元素。如果不存在下一个元素,就抛出NoSuchElementException异常 |
default void remove() | 移除当前元素。如果在调用next()方法之前试图调用remove(),会抛出异常 |
方法 | 描述 |
void add(E obj) | 将obj插入到列表中,新插入的元素位于下一次next()方法调用返回的元素之前 |
boolean hasNext() | 如果存在下一个元素就返回true,否则就返回false |
boolean hasPrevious() | 如果存在前一个元素,就返回true,否则返回false |
E next() | 返回下一个元素。如果不存在下一个元素,就抛出NoSuchElementException异常 |
int nextIndex() | 返回下一个元素的索引。如果不存在下一个元素,就返回列表的大小 |
E previous() | 返回前一个元素。如果不存在前一个元素,就抛出NoSuchElementException异常 |
int previousIndex() | 返回前一个元素的索引。如果不存在前一个元素,就返回 -1 |
void remove() | 从列表中移除当前元素。如果在调用next()或previous()方法之前调用remove()方法,就会抛出IllegalStateException 异常 |
void set(E obj) | 将obj的值赋给当前元素,也就是next()或previous()方法调用最后返回的元素 |
只有实现List接口的集合才能使用 ListIterator。
迭代器的next()方法每调用一次,指示元素的游标就会移动一个位置,若连续调用两次就会跳过两个元素,造成数据的丢失。若想倒序输出数据,也需要将游标移动到末尾,否则不能完整的倒序输出:
。
最新文章
- Java的String中的subString()方法
- vs2010安装和使用
- 7.python字符串-内置方法分析
- C# 动态绘制任务栏图标的实现
- [DevExpress]ChartControl之柱状图示例
- java笔记13之成员变量与局部变量
- php用PHPWord库生成word文档的例子
- ubuntu系统如何屏幕截图
- position:fixed 兼容浏览器低版本
- kong api可视化管理工具konga安装
- 程序配置的原则和实践以及 Spring Boot 支持方式
- iframe父页面获取子页面元素方法
- 效率较高的php下读取文本文件的代码
- JavaEE 之 Spring Data JPA
- [转载]Oracle Golden Gate - 概念和机制 (ogg)
- ubuntu上make menuconfig出错
- linux socket TCP UDP bind 同义IP和port
- easyui 特殊操作
- zookeeper java调用及权限控制
- html <;a>;标签介绍
热门文章
- C# HashSet 用法[转]
- OGG How to Resync Tables / Schemas on Different SCN s in a Single Replicat
- [在读]HTML5程序设计(第二版)
- Hadoop体系结构管理
- 动手实现 Redux(三):纯函数(Pure Function)简介
- PHP设计模式 原型模式(Prototype)
- 洛谷P2764 最小路径覆盖问题(二分图)
- Java URL 中文乱码解决办法
- ASP.NET Core 企业级开发架构简介及框架汇总 (转载)
- javascript中 if(变量)和if(变量==true)的区别