用迭代器Iterator或者for循环 遍历HashMap

Java中集合遍历Iterator迭代器执行原理 迭代器模式 foreach 增强for循环 文章目录1、Iterator迭代器2、开发中推荐使用方式3、错误使用方式4、Iterator迭代器中remove()方法5、利用迭代器实现的增强for循环遍历或者说foreach遍历 1、Iterator迭代器 用来遍历Colletioon接口实现的集合,返回Iterator接口的实例。 ①Iterator迭代器:专门用来遍历List、Set接口实现的集合,它不是一个容器,是Colletion接口中的一个遍历集合的方法,相当于火车上的乘务员的检票过程; ②迭代器模式:提供一种方法访问一个容器(contain 阅读详情

1.什么是HashMap

  • 继承自父类 AbstractMap<K,V> 类
  • 直接已知子类:CurrentHashMap,EnumMap,HashMap,IdentityHashMap,TreeMap,WeakHashMap
  • 具体可参考在线API手册

2.遍历之前 以ERP为模型 建实体类 Department 和 Person

  • Department 类:
数据类型属性描述
intdid部门编号
Stringname部门名称
  • Person 类(存储的是一个集合,里面有许多信息):
数据类型属性描述
intpid人员编号
Stringname人员姓名
Stringsex人员性别
Stringage年龄
String(描述的不准确)startTime入职时间

这里是用分层的概念去创建实体类 即在项目文件夹 src 下 Untity 中
如何把数据即Person放进所属的Department中? HashMap<K,V>

 	/**
     * 把 people 合理的放到 department 进行存储
     */
    Map<Department,List<Person>> maps = new HashMap<Department,List<Person>>();

    @Override
    public Map<Department,List<Person>> doPeopelSaveToDepartment(Department department, List<Person> people) {

        try{
        	/**
   		 	 * Map放入 用put()方法
   		 	 * 移除 用?
     		*/
            maps.put(department,people);
            return maps;
        }catch (Exception e){
            return maps;
        }
    }

3.遍历

3.1 for循环

@Override
    public void doPrintAllF() {

        for(Department dept:maps.keySet()){
            /**
             * 找到全部的部门进行遍历
             */
            System.out.println("当前部门名称为:"+dept.getName());
            /**
             * 当前部门的人员集合
             */
            List<Person> people = maps.get(dept);
            System.out.println("员工编号\t员工名称\t员工性别\t员工年龄\t入职时间");
            if(people!=null){
                for(int i=0;i<people.size();i++){
                    /**
                     * 获取所有部门的每个人 集合:size方法 数组:length方法
                     */
                    Person person = people.get(i);

                    System.out.println(person.getPid()+"\t"+person.getName()+"\t"+person.getSex()+"\t"+person.getAge()+"\t"+person.getStartTime());
                }
            }
            System.out.println();
        }
    }

3.2 迭代器

@Override
    public void doPrintAllI() {
        /**
         * 迭代器遍历department 找出dp信息
         */
        Iterator itd = maps.keySet().iterator();
        while (itd.hasNext()) {
            /**
             * 获取人员集合  从dp中来
             */
            Department dp = (Department) itd.next();
            List<Person> pl = maps.get(dp);
            /**
             * 遍历人员信息集合 输出到控制台
             */
            Iterator<Person> ip = pl.iterator();
            while (ip.hasNext()) {
                Person p = ip.next();
                System.out.println(p);
            }
        }
    }

4.实现ERP的思维导图

在这里插入图片描述
彩蛋:每日面试题
1.继承自Collection的子类有哪些?

2.接口和抽象类的区别?

3.List<>从中申明一种集合 String 类型?

答案见下篇文章

Java使用Iterator迭代器和foreach增强for遍历输出 使用ArrayList保存数据,有序排列package cn.iteratormap; public class Penguin { private String name; private String sex; public Penguin() { } public Penguin(String name, String sex) { this.name = name; t... 阅读详情

相关推荐

Java复习之HashMap的遍历

本文对比分析了Java中HashMap的五种遍历方式: Iterator遍历EntrySet:直接操作键值对,效率最高且支持安全删除 Iterator遍历KeySet:需二次查询哈希表,性能较低 For-each遍历EntrySet:语法糖实现,简洁但不可修改结构 Lambda表达式:单行简洁写法,适合Java8+ Stream API:支持链式操作,适合大数据处理 性能测试表明EntrySet迭代最优,KeySet因二次查询效率最低。推荐根据场景选择: 高性能需求用EntrySet迭代 简洁写法用Lamb

qq_74049173的博客 999

使用增强for循环和迭代器遍历Map集合

【Java编程】使用增强for循环和迭代器遍历Map集合 1、通过key集合访问,对Key敢兴趣,可以访问与key对应的Value值;  for(String k:maps.keySet()){            System.out.println(k+":"+maps.get(k));        }2、通过value集合访问,只对value值感兴趣,无法访问key值;  for...

黄昏的大树 968

MATLAB语言的并发编程

并发编程是指在同一程序中同时执行多个计算任务。通过将任务分解为较小的子任务,程序可以利用多核处理器的优势,提高计算效率。并发编程与并行编程密切相关,但不完全相同。并行编程强调任务的同时执行,而并发编程则侧重于任务的调度与管理,即使某些任务并没有同时执行。MATLAB的并发编程为数据分析、科学计算等应用提供了强大的支持。通过使用parforparfevalspmd等工具,用户可以轻松实现高效的并行计算。尽管MATLAB的并发编程工具相对简单易用,但在实际应用中仍需关注数据共享、通信、错误处理等问题。

2501_90485575的博客 365

如何使用迭代器Iterator与增强for循环遍历Map集合?

Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代和等集合。Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。

m0_72943141的博客 2307

【Python机器学习实战】 | 基于PCA主成分分析技术读入空气质量监测数据进行数据预处理并计算空气质量综合评测结果

主成分分析(Principal Component Analysis, PCA)是一种常用的机器学习和数据分析技术,用于降低数据维度、识别数据中的模式、发现变量之间的关系等。

一伦明悦的博客 1263

超详细YOLOv8实例分割全程概述:环境、训练、验证与预测详解

这篇博客提供了一个全面的指南,介绍了如何使用 Ultralytics YOLOv8-seg 系列模型进行对象检测和分割任务。内容从环境搭建、模型选择、训练、验证到预测的完整流程都有详细说明。为想要使用 YOLOv8-seg 系列模型的开发者提供了一站式的解决方案。它不仅涵盖了从环境配置到模型部署的详细步骤,还解释了如何解读和使用模型输出,使得用户能够根据自己的需求选择合适的模型,并能够有效地训练和评估它们。

CDBmax的博客 6万+

Map循环遍历的五种方法记录

我们先初始化一个最简单的Map集合 方法一: 先获取到所有key、value,再通过foreach循环,遍历出所有k、v,理论上推荐这种方法,尤其是容量较大的时候。 方法二: 通过key的set集合进行遍历,然后通过key来取map的value 方法三: 将key的set集合以迭代器的方式遍历出来,然后通过key来取map的value 方法四:将整个Map的键值对以迭代器的方式遍历出来,然后通过.getKey()与.getValue()方法取k、v的值,过程比较繁琐,数据量比较大时耗时

csdn_db96的博客 1万+

Frida+Objection保姆级教程:从环境搭建到实战Hook(含Wallbreaker插件使用)

本文提供了一份从零开始的Frida与Objection移动安全动态分析实战指南。详细讲解了Python环境配置、Frida-Server部署、Objection核心命令使用以及Wallbreaker插件安装与应用。通过实战案例演示如何Hook网络请求(如HttpURLConnection和OkHttp3),帮助安全研究人员快速掌握应用运行时行为分析与漏洞挖掘技能。

weixin_28318011的博客 102

C++ Map基础

Map的基本操作、注意事项。Map是无序的,它的存储结构是哈希表键值对,map中插入元素是根据key计算出的哈希值来存储元素的,因此他不是按照元素的添加顺序来存储对象的。

Coco6_的博客 3571

【控制模块路径跟踪算法】PID控制算法实现路径跟踪(附C++代码)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对PID控制算法实现路径跟踪–飞思卡尔的方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容PID属于无模型控制,调节三个环节的参数会产生什么影响根据控制对象的不同也会有很大差别PID形象解释小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。

qq_35635374的博客 2386

STM32智能小车控制舵机转向

文章目录前言一、舵机简单介绍及接线方式二、cubeMX配置三、代码解析总结 前言 本文将带大家学习如何驱动舵机转向 一、舵机简单介绍及接线方式 信号线(黄线)红线(电源线)棕色(地线) 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的: 0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2

m0_49476241的博客 8613

java hashmap 遍历 for_Java中HashMap遍历

在Java中有多种遍历HashMap的方法,注意Java中所有的Map类型都实现了共有的Map接口,所以接下来方法适用于所有Map(如:HaspMap,TreeMap,LinkedMap,HashTable,etc)方法1 使用For-Each迭代entries这是最常见的方法,并在大多数情况下更可取的。当你在循环中需要使用Map的键和值时,就可以使用这个方法Map map = new HashM...

weixin_30569303的博客 1605

【YOLOv11多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进

🔥本文给大家介绍使用 CDFIM跨模态差异特征交互模块改进 YOLOv11多模态目标检测,通过有效的差异特征提取和增强,显著提升了小目标的检测精度,特别是在复杂背景和低对比度环境下。该模块通过残差加法和通道与空间注意力机制,增强了可见光与红外模态之间的互补特征交互,减少了冗余信息,提高了检测稳定性。尽管提升了特征交互,CDFIM 仍保持轻量化设计,计算开销和参数量较低,适合实时检测应用。总的来说,CDFIM 模块在保留原始模态信息的同时优化了特征融合,有效提高了 YOLO 在多模态目标检测中的鲁棒性和精度

Ai缝合怪、助力小伙伴高效发论文 131

Java迭代器(iterator详解以及和for循环的区别)

前言:        迭代器是一种模式、详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。Iterable:实现这个接口的集合对象支持迭代,是可以迭代的。实现了这个可以配合foreach使用~Iterator:迭代器,提供迭代机制的对象,具体如何迭代是这个Iterator接口...

Jae_Wang的博客 7万+

从 SM30 到 Fiori:在 SAP BTP ABAP Environment 里创建 Business Configuration 配置维护对象的完整路径

摘要 在SAP BTP的ABAP环境中,传统SAP GUI和SM30配置方式被Business Configuration (BC)替代。BC通过Fiori应用维护配置,支持传输和权限控制。配置表需满足可维护性条件,如允许数据维护、包含技术字段等。通过ADT生成Maintenance Object和Transport Object,实现配置发布与治理。权限管理需创建IAM App和Business Catalog,确保配置可维护。BC在云端延续了可控、可追溯、可发布的治理原则。 (字数:150)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 242

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java迭代器(转)(iterator详解以及和for循环的区别)

迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部. 1.Iterator Java提供一个专门的迭代器>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器。Iterator接口实现后的功能是“使用”一个迭代器. 文档定义:

zxq1138634642的专栏 6万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Iterator迭代器,while循环,增强for循环的用法

Iterator迭代器,while循环,增强for循环的用法

zhansan的博客 2075

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java 迭代器 iterator 和 for 循环的区别

迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。 一、Iterator Java 提供一个专门的迭代器 «interface»Iterator,可以对某个序列实现该接口,来提供标准的 Java 迭代器。实现 Iterator 后的功能是“使用”一个迭代器。文档定义: Package java.util; public interface Iterator<E> { b

ChineseSoftware的博客 1812

Java——迭代器iterator详解

一、Iterator的API       关于Iterator主要有三个方法:hasNext()、next()、remove()       hasNext:没有指针下移操作,只是判断是否存在下一个元素       next:指针下移,返回该指针所指向的元素       remove:删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素   二...

qq_36470686的博客 2965

For循环和Iterator遍历

Iterator是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离 package list; import java.util.*; /** * @author * @FileName javaproject * @Date 2019/11/23 8:52 */ public class ArrayListDemo { public static v...

凌霄 688

遍历集合的两种方式 Iterator迭代器 增强for循环

思维导图: 代码实现: :

你的骑士 321

HashMap的两种遍历(迭代器Iterator)方式

第一种:   Map map = new HashMap();   Iterator iter = map.entrySet().iterator();   while (iter.hasNext()) {   Map.Entry entry = (Map.Entry) iter.next();   Object key = entry.getKey();   Object val = entr...

Huangxu_MIKU的博客 1万+

【小白学Java】D20》》》Iterator迭代器 & 增强for循环

迭代器 在开发过程中,我们经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口 java.uti1.Iterator Iterator 接口也是Java集合中的一员,但它与collection、Hap接口有所不同,Collection 接口与Nap接口主要用于存储元素,而 Iterator主要用于迭代访问(即遍历) collection 中的元素,因此Iterator对象也被称为迭代器。 ...

北慕辰的博客,欢迎各位大佬光临!! 966

ArrayList和HashMap遍历方式的比较

文章目录Arraylist的遍历1. 普通for循环2. 增强for循环3. Iterator 迭代器遍历三种方式对比总结Map的遍历1. 增强for循环+keySet()2. 增强for循环+entrySet()3. Iterator+keySet()4. itorator+entrySet()效率对比总结: 文章参考于 ArrayList三种遍历方式比较 Java中HashMap遍历几种方...

落叶无痕的博客 1446

Java迭代器(Iterator)的用法

Java迭代器(Iterator)的用法什么是IteratorIterator的应用 什么是Iterator Iterator(迭代器),它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合(或者也可以说成,遍历并选择序列中的对象)。 Iterator的应用 Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下: 小栗子 public static Map<String, Object> Chestnuts(Map<Stri

weixin_41902457的博客 1万+
上一篇: 集合ArrayList实现用户登录(Console)
下一篇: JDBC封装 实现用户登录(Console)IntelliJ IDEA
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉丁是我扔掉的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值