当前位置: 首页 > 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,西安 

http://www.lryc.cn/news/44085.html

相关文章:

  • “提效”|教你用ChatGPT玩数据
  • https://app.hackthebox.com/machines/Inject
  • Java Web 实战 15 - 计算机网络之网络编程套接字
  • 基于pdf2docx模块Python实现批量将PDF转Word文档(安装+完整代码教程)
  • 3.21~3.22
  • Chromium 改造实录:增加 MPEG TS 格式支持
  • 性能优化之-事件代理
  • MSDS 即化学品安全说明书
  • 真人手办没法实现网购?我有一个好办法!
  • 2019湖南省大学生程序设计竞赛题解(D)
  • 【开发】中间件——RocketMQ
  • 36 UnitTest框架 - 参数化
  • Qt源码阅读(四) 事件循环
  • 银行数字化转型导师坚鹏:银行数字化领导力提升之道
  • Vue2 -- 自定义单选内容的单选框组件
  • 让PyTorch训练速度更快,你需要掌握这17种方法
  • LeetCode-309. 最佳买卖股票时机含冷冻期
  • AUTOSAR知识点Com(七):CANSM初认知
  • 递归:斐波那契数列、递归实现指数型枚举、递归实现排列型枚举
  • oracle模糊查询时字段内容包含下划线的解决办法
  • C++:explicit关键字
  • 【C5】bmc wtd,post
  • 200.Spark(七):SparkSQL项目实战
  • 区块链系统:挖矿原理
  • 【博弈】【清华冬令营2018模拟】取石子
  • 嵌入式:BSP的理解
  • Linux主机Tcpdump使用-centos实例
  • 线性DP——AcWing 898. 数字三角形、AcWing 895. 最长上升子序列
  • SpringMVC
  • C++模板基础(二)