
Java 的 foreach 本质
发布日期:2021-05-08 00:12:51
浏览次数:22
分类:原创文章
本文共 892 字,大约阅读时间需要 2 分钟。
Java5 后增加了 foreach 特性, 本质也是 Java 语法糖. 使用 foreach 可以实现快速遍历元素, 有以下两种情况
- 实现
Iterable
接口的类, 例如List
接口的实现类ArrayList
- 数组遍历
java.lang.Iterable
这里以 java.lang.Iterable
接口实现类 ArrayList
举例
/** * forEach 用于实现 Iterator 接口的类 */ @Test public void testIterableForEach() { List<String> list = new ArrayList<>(); // 集合类 forEach 本质上是调用 iterator 接口 // 反编译可以看到 // 先声明 list.iterator() // 然后 while iterator.hasNext() // iterator.next() 获取到元素 for (String str : list) { System.out.println(str); } }
反编译 class 文件, 发现其实是利用了 Iterator
的 api 实现元素遍历
数组
/** * ArrayForEach * forEach 遍历数组 */ @Test public void testArrayForEach() { int[] arr = { 1, 2, 3, 4, 5}; // 数组使用 forEach 本质上是 fori for (int i : arr) { System.out.println(i); } }
反编译 class 文件, 发现其实是普通的 fori
遍历
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月27日 02时40分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
9个常用ES6特性归纳(一般用这些就够了)
2019-03-06
3D渲染集群,你了解多少?
2019-03-06
除了方文山,用TA你也能帮周杰伦写歌词了
2019-03-06
关于GO语言,这篇文章讲的很明白
2019-03-06
华为云FusionInsight湖仓一体解决方案的前世今生
2019-03-06
大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术
2019-03-06
C++调用Go方法的字符串传递问题及解决方案
2019-03-06
云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
2019-03-06
技巧收藏|10个JavaScript常用数组操作方法
2019-03-06
两种端到端通用目标检测方法
2019-03-06
云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
2019-03-06
LiteOS内核源码分析:任务栈信息
2019-03-06
23种设计模式之迭代器模式
2019-03-06
23种设计模式之组合模式
2019-03-06
mysql zip安装
2019-03-06
mysql修改密码
2019-03-06
virtualbox中 Kali Linux安装增强功能
2019-03-06
virtualbox中 Ubuntu挂载共享文件夹
2019-03-06
Python 内置函数笔记
2019-03-06
BootStrapTable 错误
2019-03-06