Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口
通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。一般遍历数组都是采用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学习之集合框架的迭代器--Iteratorjk及ListItertor接口的更多相关文章
- Java学习关于集合框架的基础接口--Collection接口
集合框架(Collection Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准 ...
- java学习第六天集合框架.day15
Set接口 Set集合存储特点: 不允许元素重复 不会记录元素的添加先后顺序 Set只包含从Collection继承的方法,不过Set无法记住添加的顺序,不允许包含重复的元素.当试图添加两个相同元素进 ...
- 第48节:Java当中的集合框架
Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...
- Java当中的集合框架
Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...
- 菜鸟日记之 java中的集合框架
java中的集合框架图 如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合 Collection单列集合:继承了Iterat ...
- Java基础--说集合框架
版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...
- Java中的集合框架(上)
Java中的集合框架概述 集合的概念: Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象. 集合的作用: 1.在类的内部,对数据进行组织: 2.简单的快速的搜索大数据量的 ...
- 第51节:Java当中的集合框架Map
简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...
- Java中的集合框架-Collections和Arrays
上一篇<Java中的集合框架-Map>把集合框架中的键值对容器Map中常用的知识记录了一下,本节记录一下集合框架的两个工具类Collections和Arrays 一,Collections ...
随机推荐
- magento layout xml 小结
基础概念: http://magebase.com/magento-tutorials/demystifying-magentos-layout-xml-part-1/ 调试方案函数: $this-& ...
- laravel 权限管理 常用命令
use Spatie\Permission\Models\Role;use Spatie\Permission\Models\Permission; $role = Role::create(['na ...
- ES6学习笔记(4)----正则的扩展
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 正则的扩展 ES6新增的正则表达式修饰符 u修饰符a.能够更准确地匹配unicode大于\uFF ...
- iOS --- 搜索框UISearchController的使用(iOS8.0以后替代UISearchBar+display)
在iOS 8.0以上版本中, 我们可以使用UISearchController来非常方便地在UITableView中添加搜索框. 而在之前版本中, 我们还是必须使用UISearchBar + UISe ...
- EEPROM介绍
EEPROM( Electrically Erasable Programmable Read Only Memory )全称是电气可擦除可编程只读存储器,是非易失存储器,可以访问到每个字节,容量比较 ...
- 安装mysql时 make 时 提示 redeclaration of C++ built-in type ‘bool’ 错误
安装mysql时 make 时 提示 redeclaration of C++ built-in type ‘bool’ 错误 由于gcc-c++是在./configure后进行编译的 重新./con ...
- 【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法
基于运动特征的 HEVC 快速帧间预测算法/Fast Inter-Frame Prediction Algorithm for HEVC Based on Motion Features <HE ...
- hasChildNodes()方法,nodeName、nodeValue、nodeType介绍
Document对象的使用:hasChildNodes()方法,nodeName.nodeValue.nodeType的简单介绍 一.hasChildNodes() 说明: (1) 该方法 ...
- npm与cnpm
npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...
- 产生多种anchor的代码讲解!很好!
http://blog.csdn.net/xzzppp/article/details/52317863 源代码:https://github.com/rbgirshick/py-faster-rcn ...