设计模式之迭代器模式

迭代器现在被广泛地应用,甚至已经成为一个最基础的工具。有些人建议将迭代器模式从 23 种模式中删除,其原因就是迭代器模式太普通了,已经融合到各个语言和工具中。在Java语言中,从JDK1.2版本开始,增加了java.util.Iterator接口,并将Iterator应用到各个聚集类(Collection)中,如 ArrayList、Vector、Stack、HashSet 等集合类都实现了 iterator()方法,返回一个迭代器Iterator,便于对集合中的元素进行遍历。

也正因为 Java 将迭代器模式已经融合到基本的API中,使我们在项目中无须在独立地写迭代器,直接使用即可,这样既轻松又便捷。注意在Java开发中,尽量不要自己写迭代器模式,使用Java API提供的Iterator一般就能满足项目的要求。

为了专栏完整,还是把这个模式列在这里,希望大家去熟悉Java中所有内置迭代器的使用方法,有兴趣可以深入研究一下具体实现。

public class Demo {
    public static void main(String[] args) {
        HashMap<String, Integer> hashMap = new HashMap<>();
        hashMap.put("Apple", 1);
        hashMap.put("Banana", 2);
        hashMap.put("Cherry", 3);

        // 使用 entrySet() 方法获取键值对集合的迭代器
        Iterator<Entry<String, Integer>> iterator = hashMap.entrySet().iterator();

        while (iterator.hasNext()) {
            // 获取下一个键值对 Entry 对象
            Entry<String, Integer> entry = iterator.next();

            // 通过 Entry 对象访问键和值
            String key = entry.getKey();
            int value = entry.getValue();

            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}

如果大家需要视频版本的讲解,欢迎大家关注我的B站。

【天哥不爱学习的个人空间-哔哩哔哩】 https://b23.tv/HxwqjXl

相关推荐

  1. 设计模式模式

    2024-04-09 07:26:01       34 阅读
  2. 设计模式模式

    2024-04-09 07:26:01       30 阅读
  3. 【前端设计模式模式

    2024-04-09 07:26:01       57 阅读
  4. 【软件设计模式与组合模式

    2024-04-09 07:26:01       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 07:26:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 07:26:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 07:26:01       82 阅读
  4. Python语言-面向对象

    2024-04-09 07:26:01       91 阅读

热门阅读

  1. verilog 和 system verilog 有什么区别?

    2024-04-09 07:26:01       38 阅读
  2. 一些考研经验

    2024-04-09 07:26:01       40 阅读
  3. Rust 实战练习 - 9. 文本编码,URL编码,加密解密

    2024-04-09 07:26:01       37 阅读
  4. 10.枚举

    10.枚举

    2024-04-09 07:26:01      39 阅读
  5. uniapp 检查更新

    2024-04-09 07:26:01       37 阅读
  6. 新型基础设施建设(新基建)

    2024-04-09 07:26:01       32 阅读
  7. golang 使用 cipher、aes 实现 oauth2 验证

    2024-04-09 07:26:01       36 阅读
  8. MySQL视图及如何导入导出

    2024-04-09 07:26:01       35 阅读
  9. 【IP层的校验和与UDP的校验和】+【FPGA实现】

    2024-04-09 07:26:01       27 阅读
  10. Prime Ring Problem(UVA 524)

    2024-04-09 07:26:01       37 阅读
  11. 在mac环境下使用shell脚本实现tree命令

    2024-04-09 07:26:01       36 阅读
  12. 【远程桌面】Microsoft Remote Desktop 4 mac

    2024-04-09 07:26:01       37 阅读