设计模式之迭代器模式

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

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

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

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

相关推荐
_Evan_Yao7 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
梓豪csd7 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼7 小时前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
thefool1122668 小时前
TCP 1
java·1024程序员节
金銀銅鐵11 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手11 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
paopaokaka_luck13 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_322414280413 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
考虑考虑14 小时前
JDK26的JEP 500属性
java·后端·java ee
LMT流氓兔14 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节