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

HashMap集合存储学生对象并遍历

需求:创建一个HashMap集合,键是学生对象(Student),值是居住地。存储多个键值对元素,并遍历。

        要求保证键的唯一性:如果学生对象的成员变量值相同,我们就认为是同一个对象

思路:

        定义学生类

        创建HashMap集合对象

        创建学生对象

        把学生添加到集合

        遍历集合

        在学生类中重写两个方法

                hashCode()

                equals()

代码实现:

        编写Student类

package com.aynu3;import java.util.Objects;public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;if (age != student.age) return false;return Objects.equals(name, student.name);}@Overridepublic int hashCode() {int result = name != null ? name.hashCode() : 0;result = 31 * result + age;return result;}
}
package com.aynu3;import java.util.HashMap;
import java.util.Set;public class HashMapDemo {public static void main(String[] args) {//创建HashMap集合对象HashMap<Student,String> hm=new HashMap<Student,String>();//创建学生对象Student s1=new Student("林青霞",30);Student s2=new Student("张曼玉",35);Student s3=new Student("王祖贤",33);Student s4=new Student("王祖贤",33);//把学生添加到集合hm.put(s1,"西安");hm.put(s2,"武汉");hm.put(s3,"洛阳");hm.put(s4,"北京");//遍历集合Set<Student> keySet = hm.keySet();for (Student key:keySet) {String value = hm.get(key);System.out.println(key.getName() + "," + key.getAge()+","+value);}}
}

运行结果:

王祖贤,33,北京
张曼玉,35,武汉
林青霞,30,西安 

相关文章:

HashMap集合存储学生对象并遍历

需求&#xff1a;创建一个HashMap集合&#xff0c;键是学生对象&#xff08;Student&#xff09;,值是居住地。存储多个键值对元素&#xff0c;并遍历。 要求保证键的唯一性&#xff1a;如果学生对象的成员变量值相同&#xff0c;我们就认为是同一个对象 思路&#xff1a; 定义…...

“提效”|教你用ChatGPT玩数据

ChatGPT与数据分析&#xff08;二&#xff09; 上文给简单聊了一下为什么ChatGPT不能取代数据分析师&#xff0c;本文我们来深入感受一下如何让GPT帮助数据分析师“提效”。 场景一&#xff1a;SQL取数 背景&#xff1a;多数数据分析师都要用SQL语言从数据库中提取数据&#x…...

https://app.hackthebox.com/machines/Inject

https://app.hackthebox.com/machines/Inject Ref&#xff1a; 1.https://blog.csdn.net/qq_58869808/article/details/129505388 2.https://blog.csdn.net/m0_73998094/article/details/129474782 info collecting ┌──(kwkl㉿kwkl)-[~/HODL/htb/Inject] └─$ nmap -A …...

Java Web 实战 15 - 计算机网络之网络编程套接字

文章目录一 . 网络编程中的基本概念1.1 网络编程1.2 客户端(client) / 服务器(server)1.3 请求(request) / 响应(response)1.4 客户端和服务器之间的交互数据1.4.1 一问一答1.4.2 多问一答1.4.3 一问多答1.4.4 多问多答二 . socket 套接字2.1 UDP 的 Socket API2.1.1 引子2.1.2…...

基于pdf2docx模块Python实现批量将PDF转Word文档(安装+完整代码教程)

PDF文件是一种常见的文档格式&#xff0c;但是在编辑和修改时不太方便&#xff0c;因为PDF本质上是一种静态的文档格式。因此&#xff0c;有时候我们需要将PDF文件转换成Word格式&#xff0c;以便更好地编辑和修改文档。在本篇文章中&#xff0c;我们将介绍如何使用Python实现P…...

3.21~3.22

识编程语言中的&#xff0c;局部变量&#xff0c;全局变量&#xff0c;以及变量生存周期&#xff0c;整形&#xff0c;浮点型数据的内存表示&#xff0c;od的内存窗口的使用 先看一个代码样例 #include<windows.h> #include<stdio.h>#pragma warning(disable:499…...

Chromium 改造实录:增加 MPEG TS 格式支持

在《选择最新 Chromium&#xff0c;支持 H264 / H265》一文中&#xff0c;记录了我通过升级 Chromium 版本解决了 H264 / H265 视频支持难题。然而难题接踵而至&#xff0c;这次的难题是 MPEG TS 流的支持。MPEG2-TS 传输流广泛应用于数字电视广播系统&#xff0c;所以是一个不…...

性能优化之-事件代理

js中的事件委托或是事件代理简单理解 事件委托也叫事件代理&#xff0c;“事件代理”即是把原本需要绑定在子元素的响应事件&#xff08;click、keydown…&#xff09;委托给父元素&#xff0c;让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。 概述&#x…...

MSDS 即化学品安全说明书

MSDS 即化学品安全说明书&#xff0c;亦可译为化学品安全技术说明书或化学品安全数据说明书&#xff0c;是化学品生产商和进口商用来阐明化学品的理化特性&#xff08;如PH值&#xff0c;闪点&#xff0c;易燃度&#xff0c;反应活性等&#xff09;以及对使用者的健康&#xff…...

真人手办没法实现网购?我有一个好办法!

记得以前在网上看到过一个冷笑话式的问答&#xff0c;问的是中国最早的手办是什么&#xff0c;有网友回答是秦始皇兵马俑&#xff0c;这个抖机灵式的回答简直妙得让人会心一笑。 你接触过手办吗&#xff1f; 提到手办&#xff0c;大家第一时间想到的&#xff0c;肯定都会是各…...

2019湖南省大学生程序设计竞赛题解(D)

D-Modulo Nine 很妙的类似区间dp&#xff0c; 我自己是想不到&#xff0c;本题解题思路来自学长的博客&#xff1a; 长沙橘子猫 题意 有一个长度为 nnn 的序列&#xff0c;你可以给每个位置填 0∼90\sim90∼9 的一个数&#xff0c;有 mmm 个限制&#xff0c;每个限制 [li,ri…...

【开发】中间件——RocketMQ

分布式消息系统 RocketMQ概念&#xff0c;用途&#xff0c;特性安装RocketMQ掌握RocketMQ的api使用对producer、consumer进行详解了解RocketMQ的存储特点 简介及相关概念JavaAPISpringBoot整合RocketMQ消息的顺序收发消息系统的事务、存储、重试策略消息系统的集群 RocketMQ R…...

36 UnitTest框架 - 参数化

目录 一、参数化环境准备 1、方式一&#xff1a;在终端&#xff08;cmd&#xff09;安装parameterized 2、方式二&#xff1a;在Pycharm中安装parameterized 二、参数化 1、什么事参数化&#xff1f; 2、参数化引入案例 &#xff08;1&#xff09;需求 &#xff08;2&a…...

Qt源码阅读(四) 事件循环

事件系统 文章为本人理解&#xff0c;如有理解不到位之处&#xff0c;烦请各位指正。 文章目录事件系统什么是事件循环&#xff1f;事件是如何产生的&#xff1f;sendEventpostEvent事件是如何处理的&#xff1f;事件循环是怎么遍历的&#xff1f;事件过滤器event夹带私货时间Q…...

银行数字化转型导师坚鹏:银行数字化领导力提升之道

银行数字化领导力提升之道 ——融合中西智慧&#xff0c;践行知行合一思想&#xff0c;实现知行果合一 课程背景&#xff1a; 很多银行存在以下问题&#xff1a;不知道如何领导数字员工&#xff1f;不清楚银行数字化领导力模型的内涵&#xff1f;不知道如何开展银行数字化…...

Vue2 -- 自定义单选内容的单选框组件

自定义单选内容的单选框组件 之前做的一个项目&#xff0c;在项目中有一个关于人员权限分配的功能&#xff0c;给人员指定各个模块的权限信息&#xff0c;分为 write 可写权限read 可读权限none 没有权限 项目要求画面中只显示 W R 两个按钮控制指定权限信息&#xff0c;都不…...

让PyTorch训练速度更快,你需要掌握这17种方法

掌握这 17 种方法&#xff0c;用最省力的方式&#xff0c;加速你的 Pytorch 深度学习训练。近日&#xff0c;Reddit 上一个帖子热度爆表。主题内容是关于怎样加速 PyTorch 训练。原文作者是来自苏黎世联邦理工学院的计算机科学硕士生 LORENZ KUHN&#xff0c;文章向我们介绍了在…...

LeetCode-309. 最佳买卖股票时机含冷冻期

目录题目思路动态规划题目来源 309. 最佳买卖股票时机含冷冻期 题目思路 每天最多只可能有三种状态中的一种 0表示当前处于买入状态(持有股票) 1表示当前处于卖出状态(不持有股票) 2表示当前处于冷冻状态 设dp[i][j]表示i - 1天状态为j时所拥有的最大现金 dp[i][0] Math.ma…...

AUTOSAR知识点Com(七):CANSM初认知

目录 1、概述 2、CanSM主要做什么 2.1、CAN控制器状态管理 2.2、CAN收发器状态管理 2.3、Busoff检测 1、概述 CANSM&#xff08;Controller Area Network State Manager&#xff09;是AUTOSAR&#xff08;Automotive Open System Architecture&#xff09;标准中的一个模块…...

递归:斐波那契数列、递归实现指数型枚举、递归实现排列型枚举

递归&#xff1a;O(2^n) 调用自己 例题及代码模板&#xff1a; 斐波那契数列 输入一个整数 n &#xff0c;求斐波那契数列的第 n 项。 假定从 0 开始&#xff0c;第 0 项为 0。 数据范围 0≤n≤39 样例 输入整数 n5 返回 5 #include <iostream> #include <cstring&g…...

Go语言轻量级Web框架Tapestry:高性能路由与中间件设计实战

1. 项目概述与核心价值最近在开源社区里&#xff0c;一个名为Tapestry的项目引起了我的注意。它来自开发者 NatsuFox&#xff0c;定位是一个“轻量级、高性能的 Web 框架”。说实话&#xff0c;现在各种语言的 Web 框架多如牛毛&#xff0c;从 Python 的 Flask、Django&#xf…...

基于大语言模型的自动化信息处理系统:从RSS聚合到AI摘要的实践

1. 项目概述&#xff1a;一个能帮你“读”新闻的AI助手 在信息爆炸的时代&#xff0c;每天光是处理订阅的RSS、关注的社交媒体动态、收藏的YouTube视频和没读完的长文&#xff0c;就足以让人精疲力尽。我们总想保持对行业趋势的敏感&#xff0c;却又被海量信息淹没&#xff0c…...

别再死记硬背段码了!用Python脚本自动生成数码管显示码表(支持共阳/共阴)

用Python解放双手&#xff1a;动态生成数码管段码的工程实践 数码管作为电子设计中最基础的显示元件之一&#xff0c;其驱动原理看似简单却暗藏玄机。传统开发流程中&#xff0c;工程师需要反复查阅手册或记忆十六进制段码&#xff0c;这种低效模式在复杂项目中将消耗大量时间。…...

从面试旅行到EDA设计:工程思维如何应对混乱与不确定性

1. 一次糟糕的面试旅行&#xff1a;从混乱到反思的工程思维那天早上醒来&#xff0c;看到闹钟指针的那一刻&#xff0c;我就知道一切都乱套了。作为一名在谢菲尔德攻读控制工程学士学位的学生&#xff0c;我本该精神抖擞地前往伦敦郊区参加人生中第一次工业实习面试。然而&…...

【临床研究者必藏】Perplexity+Lancet联合检索SOP:从预印本争议到正式发表的全周期追踪方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PerplexityLancet联合检索SOP的临床价值与范式变革 在循证医学实践加速数字化的当下&#xff0c;Perplexity&#xff08;基于语义理解与推理增强的检索引擎&#xff09;与《The Lancet》开放文献元数据…...

技术人必备的Chrome插件清单:第7个让调试效率翻倍

对于软件测试从业者而言&#xff0c;浏览器早已不是单纯的信息浏览窗口&#xff0c;而是集接口调试、性能分析、元素定位、辅助功能验证于一体的核心工作站。面对日益复杂的Web应用和紧迫的交付周期&#xff0c;一套精悍的Chrome插件组合往往能带来远超预期的效率回报。本文从测…...

科研工作流构建指南:从文献管理到论文写作的全流程工具链实践

1. 项目概述与核心价值 如果你是一名在读的硕士、博士研究生&#xff0c;或者刚刚踏入科研院所、企业研发部门的新人研究员&#xff0c;那么“如何高效地开展研究”这个问题&#xff0c;大概率会持续困扰你很长一段时间。从浩如烟海的文献中精准定位方向&#xff0c;到设计严谨…...

京东自动评价工具:3分钟解决购物评价难题的智能助手

京东自动评价工具&#xff1a;3分钟解决购物评价难题的智能助手 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 还在为购物后的评价烦恼吗&#xff1f;每次收到京东的"待评价"提醒&…...

DOM NodeList 深入解析

DOM NodeList 深入解析 概述 DOM NodeList 是 Web 开发中常用的一种数据结构,它代表了文档中一系列元素的集合。在本文中,我们将对 DOM NodeList 进行深入解析,包括其定义、特点、使用方法以及在实际开发中的应用。 定义 DOM NodeList 是一个类似数组的对象,它包含了文…...

Codex入门09-Git工作流(小白入门:不会写commit信息?AI帮你自动生成规范提交)

🎯 本文目标 学会用 Codex 自动化 Git 操作:提交、冲突解决、PR 描述生成。 😰 Git 新手的典型痛点 你的提交记录是不是这样的: git log --oneline a3f4b2c fix 9d1e8c4 update 4c7b91f 修改了一些东西 f0a2d3e 。。。 b5c8e7a 又改了这就是"屎山提交记录"—…...