当前位置: 首页 > news >正文

Java之迭代器的使用

Java之迭代器的使用

    • 摘要
    • 基础知识
    • List迭代器
    • Map迭代器

摘要

本博客主要讲解容器的迭代器的使用,包括List、Set和Map等容器

基础知识

这是类的继承关系图
在这里插入图片描述
迭代器的原理(一开始迭代器并不指向任何有效元素):
在这里插入图片描述

List迭代器

public class TestIterator {public static void main(String[] args) {testIteratorList();}public static void testIteratorList(){List<String> list = new ArrayList<>();list.add("aa");list.add("bb");list.add("cc");//底下就是迭代器遍历打印list中的元素for( Iterator<String> iter = list.iterator(); iter.hasNext();){String temp = iter.next();System.out.println(temp);}}
}

Map迭代器

public class TestIterator {public static void main(String[] args) {testIteratorMap();}public static void testIteratorMap(){Map<Integer, String> map1 = new TreeMap<>();map1.put(100,"aa");map1.put(200, "bb");//Map每个元素都是一个节点,节点的类型为Map.Entry<Integer, String>,这里把map1转换为集合Set<Map.Entry<Integer, String>> set = map1.entrySet();//处理集合的方法for( Iterator<Map.Entry<Integer, String>> iter = set.iterator(); iter.hasNext();){Map.Entry<Integer, String> temp = iter.next();//获取节点的key和valueSystem.out.println(temp.getKey() + ":" + temp.getValue());}}
}

其他的方法:

public class TestIterator {public static void main(String[] args) {testIteratorMap();}public static void testIteratorMap(){Map<Integer, String> map1 = new TreeMap<>();map1.put(100,"aa");map1.put(200, "bb");//把map1的键全部取出来Set<Integer> set = map1.keySet();for( Iterator<Integer> iter = set.iterator(); iter.hasNext();){Integer temp = iter.next();System.out.println(map1.get(temp));}}
}

参考:迭代器

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt QTableWidgetItem.setFlags()
  • [M双指针] lc209. 长度最小的子数组(双指针+好题)
  • 开发一个免费的图表网站 Free Charts
  • 《机器学习》—— AUC评估指标
  • 多线程中常见问题
  • 《第二十四章 多线程与异步任务 - AsyncTask 异步任务》
  • Spring笔记(二)
  • qtsql连接达梦数据库
  • 【CANoe使用大全】——cdd导入CANoe流程详解
  • 使用PowerShell自动化Windows系统管理任务
  • JavaEE从入门到起飞(九) ~Activiti 工作流
  • 【前缀和算法】--- 一维和二维前缀和模板
  • Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
  • 实时洞察应用健康:使用Spring Boot集成Prometheus和Grafana
  • 极速文件预览!轻松部署 kkFileView 于 Docker 中!
  • [译] 怎样写一个基础的编译器
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • C++入门教程(10):for 语句
  • Docker容器管理
  • es6要点
  • Java小白进阶笔记(3)-初级面向对象
  • js学习笔记
  • Nodejs和JavaWeb协助开发
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • quasar-framework cnodejs社区
  • tab.js分享及浏览器兼容性问题汇总
  • Vue 重置组件到初始状态
  • Vue.js-Day01
  • 编写高质量JavaScript代码之并发
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 小程序测试方案初探
  • 追踪解析 FutureTask 源码
  • Android开发者必备:推荐一款助力开发的开源APP
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (160)时序收敛--->(10)时序收敛十
  • (C++17) std算法之执行策略 execution
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (算法设计与分析)第一章算法概述-习题
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)jdk与jre的区别
  • .net core Swagger 过滤部分Api
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .Net Core和.Net Standard直观理解
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net的socket示例
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @SuppressWarnings注解
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [023-2].第2节:SpringBoot中接收参数相关注解