内容简介:上一篇文章中我在集合元素的遍历中已经有涉及到Iterator的普遍使用方法,但是并没有对此进行解释。其实,Iterator来源于java.util包,也是属于Java集合框架中的一份子,不同于Collection(存放单一数据)和Map(存放具有映射关系的数据),Iterator主要用于集合元素的迭代输出,所以它的对象又被称为迭代器。Iterator的方法包括:
上一篇文章中我在集合元素的遍历中已经有涉及到Iterator的普遍使用方法,但是并没有对此进行解释。
其实,Iterator来源于java.util包,也是属于 Java 集合框架中的一份子,不同于Collection(存放单一数据)和Map(存放具有映射关系的数据),Iterator主要用于集合元素的迭代输出,所以它的对象又被称为迭代器。
Iterator的方法包括:
| 表头 | 表头 |
|---|---|
| boolean hasNext(); | 判断迭代器是否还有未遍历的元素 |
| E next(); | 返回迭代器中下一未遍历元素 |
| void remove(); | 移除迭代器上一遍历的元素 |
| void forEachRemaining(Consumer action) | 以特定的Lambda表达式遍历元素 |
注:void forEachRemaining(Consumer action)为Java 8新增的默认方法。
下面是Iterator的实例化以及各方法的使用方法
- Iterator的实例化
Iterator it=c5.iterator();
Iterator本身不存在容纳对象的能力,它的对象必须依附于Collection对象。
同时,一个Iterator对象只能使用一次,复用会导致 java.util.ConcurrentModificationException 。我还没搞懂为什么会这样,应该是关于 设计模式 的内容。
- boolean hasNext();以及next();
while(it.hasNext()) {
System.out.println(it.next());
}
输出:5
- void remove();
while(it.hasNext()) {
System.out.println(it.next());
it.remove();
}
输出:5
remove方法要在next方法之后调用,次序调换会导致 java.lang.IllegalStateException 。
- void forEachRemaining(Consumer action);
Iterator it=c5.iterator(); it.forEachRemaining(obj->System.out.println(obj));
输出:5
通过特定的Lambda表达式格式输出元素。
Iterator接口就写到这里了。通常我都是用它作为测试Collection对象的,好处就是不用通过循环遍历,代码量会少一点。但是正式使用我还是会使用循环遍历Collection对象,虽则代码量多,但是可以省掉一个对象的内存空间,能省一点是一点,哈哈!
如果你还想了解关于java集合的内容,欢迎点击 https://segmentfault.com/a/1190000019071471
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Java集合框架——List接口
- Scala 中的集合(二):集合性能比较
- Scala 中的集合(二):集合性能比较
- 《面试知识,工作可待:集合篇》:Java 集合面试知识大全
- 如何对集合对象求合计,然后追加在该集合对象中
- MongoDB指南---14、特殊的索引和集合:固定集合、TTL索引、全文本索引
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
树莓派学习指南
[英]Peter Membrey、[澳]David Hows / 张志博、孙峻文 / 人民邮电出版社 / 2014-4 / 49.00元
树莓派(Raspberry Pi)是一款基于Linux系统的、只有一张信用卡大小的卡片式计算机。由于功能强大、性能出色、价格便宜等特点,树莓派得到了计算机硬件爱好者以及教育界的欢迎,风靡一时。 《树莓派学习指南(基于Linux)》是学习在树莓派上基于Linux进行开发的一本实践指南。全书共3个部分11章,第一部分是前两章,讲述如何设置和运行图形用户界面(GUI)。第二部分是第3章到第7章,讲......一起来看看 《树莓派学习指南》 这本书的介绍吧!