JAVA基础 练习-18-HashMap集合练习(四)

时间:2023-09-16 16:27

JAVA基础 练习-18-HashMap集合练习(二)

📑需求:

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

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


✏️ 思路:
  1. 定义学生类
  2. 创建HashMap集合对象
  3. 创建学生对象
  4. 把学生添加到集合
  5. 遍历集合
  6. 在学生类中重写两个方法
    • hashCode()
    • equals()

代码主体
HashMapDemo类
import java.util.HashMap;
import java.util.Set;/*需求:创建一个HashMap集合,监视学生对象(Student),值是居住地(String).存储多个键值对元素,并遍历。要求保证键的唯一性:如果学生对象的成员变量相同,我们就认为是同一个对象思路:1.定义学生类2.创建HashMap集合对象3.创建学生对象4.把学生添加到集合5.遍历集合6.在学生类中重写两个方法hashCode()equals()*/public class HashMapDemo {public static void main(String[] args) {//创建HashMap集合对象HashMap<Student, String> map = new HashMap<Student, String>();//创建学生对象Student s1 = new Student("大熊", 18);Student s2 = new Student("静香", 19);Student s3 = new Student("胖虎", 20);Student s4 = new Student("胖虎", 20);
//        Student s3 = new Student("胖虎", 20);//把学生添加到集合map.put(s1, "广东");map.put(s2, "上海");map.put(s3, "深圳");map.put(s4, "北京");//遍历数组Set<Student> keySet = map.keySet();for (Student key : keySet) {String value = map.get(key);System.out.println(key.getName() + "," + key.getAge() + "," + value);}}
}
Student类
/*学生类*/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 name != null ? name.equals(student.name) : student.name == null;}@Overridepublic int hashCode() {int result = name != null ? name.hashCode() : 0;result = 31 * result + age;return result;}
}

Copyright© 黑海资讯

鄂ICP备2023014923号