Java 迭代器须知 | “for each”与迭代器的关系
Iterator接口包含4个方法:

通过反复调用next方法就可以逐个访问集合中的每个元素。需要注意,如果到达了集合的末尾,再次调用next方法将会抛出一个NoSuchElementException,因此,通常遍历在调用next方法前先调用hasNext方法。
如果想要遍历集合中的所有元素,可以请求一个迭代器,并在hasNext方法返回true时反复地调用next方法,如:
public static void main(String[] args) {
List<String> nameList = new LinkedList<>();
nameList.add("aaa");
nameList.add("bbb");
nameList.add("ccc");
nameList.add("ddd");
Iterator<String> nameIterator = nameList.iterator();
while (nameIterator.hasNext()) {
System.out.println(nameIterator.next());
//nameIterator.remove();
}
}
也可以使用“for each”更加简练地实现同样地操作:
public static void main(String[] args) {
List<String> nameList = new LinkedList<>();
nameList.add("aaa");
nameList.add("bbb");
nameList.add("ccc");
nameList.add("ddd");
for (String name : nameList) {
System.out.println(name);
}
}
事实上,“for each”会被编译器翻译为带有迭代器地循环。
Java 迭代器须知 | “for each”与迭代器的关系的更多相关文章
- 【java设计模式】(6)---迭代器模式(案例解析)
设计模式之迭代器模式 一.java迭代器介绍 1.迭代器接口 在jdk中,与迭代器相关的接口有两个:Iterator 与 Iterable. Iterator:迭代器,Iterator及其子类通常是迭 ...
- JAVA迭代器学习--在JAVA中实现线性表的迭代器
1,迭代器是能够对数据结构如集合(ADT的实现)进行遍历的对象.在遍历过程中,可以查看.修改.添加以及删除元素,这是它与一般的采用循环来遍历集合中的元素不同的地方.因为,通常用循环进行的遍历操作一般是 ...
- Java中的List集合和迭代器
一.Java中的List集合. 终于有时间来好好整理一下Java中的集合. 首先要讲的就是List集合.Java中List集合主要将两个: 第一个是底层使用数组维护的ArrayList,第二个是底层是 ...
- Java连载84-Collection的常用方法、迭代器
一.Collections的常用方法介绍 1.承接上次连载,先介绍几个简单的常用方法 package com.bjpowernode.java_learning; import java.util.* ...
- Python自动化运维之7、生成器、迭代器、列表解析、迭代器表达式
迭代器和生成器 1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外 ...
- python 迭代器(三):迭代器基础(三)典型的迭代器
标准迭代器 示例 14-4 sentence_iter.py:使用迭代器模式实现 Sentence 类 import re import reprlib RE_WORD = re.compile('\ ...
- python 迭代器(二):迭代器基础(二)可迭代的对象与迭代器的对比
可迭代的对象 如果对象实现了能返回迭代器的 __iter__ 方法,那么对象就是可迭代的. 序列都可以迭代:实现了 __getitem__ 方法,而且其参数是从零开始的索引,这种对象也可以迭代. &g ...
- 【java】JDK、JRE、JVM的关系
目录结构: contents structure [-] 什么是JDK,JRE,JVM 安装JDK的时候为什么有两个jre 专用JRE 共用JRE 共用JRE和专用JRE的对比 java的跨平台特性 ...
- [转帖]Java中重写和重载与多态的关系
Java中重写和重载与多态的关系 2019-09-05 00:57:41 留下一天今天 阅读数 67 收藏 更多 分类专栏: java进阶之路 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
随机推荐
- 17-3 cookie和session
一 . Cookie 1.cookie 是什么? 保存在浏览器端的键值对! 服务端在返回响应的时候,告诉浏览器保存的键值对!浏览器可以拒绝保存Cookie. 2. 为什么要有cookie? HTTP请 ...
- 威胁快报|挖矿团伙8220进化,rootkit挖矿趋势兴起
近日,阿里云安全团队发现8220挖矿团伙为了更持久的驻留主机以获得最大收益,开始使用rootkit技术来进行自我隐藏.这类隐藏技术的使用在watchdogs等挖矿蠕虫使用后开始出现逐渐扩散和进化的趋势 ...
- VSCode配置启动Vue项目
下载安装并配置VSCode 随便百度上搜个最新的VSCode安装好后,点击Ctrl + Shit + X打开插件扩展窗口进行插件扩展,这里要安装两个插件. 1.vetur插件的安装 该插件是vue文件 ...
- H3C 会话层、表示层和应用层
- C#的类
一.String类 1.Length 字符的长度 string x = Console.ReadLine();int i = x.Length;// Length 是获取字符串的长度(从1开始数)Co ...
- 2018-8-10-如何入门-C++-AMP-教程
title author date CreateTime categories 如何入门 C++ AMP 教程 lindexi 2018-08-10 19:16:51 +0800 2018-2-13 ...
- H3C 显示OSPF邻居信息
- 2018-2-13-win10-uwp-隐藏实时可视化
title author date CreateTime categories win10 uwp 隐藏实时可视化 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 ...
- H3C 路由器单跳操作
- HashMap之红黑树
红黑树的设计,相比 jdk1.7 的 HashMap 而言,jdk1.8 最重要的就是引入了红黑树的设计,当冲突的链表长度超过 8 个的时候,链表结构就会转为红黑树结构. 01.故事的起因 “ JDK ...