0
点赞
收藏
分享

微信扫一扫

Java学习Map之案例:HashMap集合存储学生对象并遍历

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

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

思路:

   1.定义学生类

   2.创建HashMap集合对象

   3.创建学生对象

   4.把学生添加到集合

   5.遍历集合

   6.在学生类中重写两个方法

          hashCode()

          equals()


package com.itheima_26;

import java.util.HashMap;
import java.util.Set;


/*
需求:创建一个HashMap集合,键是学生对象(Student),居住地是(String).存储多个键值对元素,并遍历
要求保证键的唯一性:如果学生对象的成员变量值相同,我们就认为是同一个对象
思路:
1.定义学生类
2.创建HashMap集合对象
3.创建学生对象
4.把学生添加到集合
5.遍历集合
6.在学生类中重写两个方法
hashCode()
equals()
*/
public class HashDemo {
public static void main(String[] args) {
//创建HashMap集合对象
HashMap<Student,String> hm = new HashMap<Student,String>();

//创建学生对象
Student s1 = new Student("李一",18);
Student s2 = new Student("李二",19);
Student s3 = new Student("李三",20);
Student s4 = new Student("李三",20);

//把学生添加到集合
hm.put(s1,"商丘");
hm.put(s2,"永城");
hm.put(s3,"夏邑");
hm.put(s4,"北京");

//遍历集合
Set<Student> keySet = hm.keySet();
for (Student key:keySet){
String s = hm.get(key);
System.out.println(key.getName() +"," + key.getAge() + "," + s);
}

}

}
package com.itheima_26;

import java.util.Objects;

public class Student {
private String name;
private int age;

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;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && Objects.equals(name, student.name);
}

@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
举报

相关推荐

0 条评论