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 实现元素遍历
遍历 Iterator 接口的实现类

数组

  /**     * 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 遍历
数组 foreach

上一篇:如何遍历数字的每一位
下一篇:Java 可变长参数

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月27日 02时40分02秒