JAVA基础 练习-18-HashMap集合练习(二)
📑需求:
创建一个HashMap集合,监视学生对象(Student),值是居住地(String).存储多个键值对元素,并遍历。
要求保证键的唯一性:如果学生对象的成员变量相同,我们就认为是同一个对象
✏️ 思路:
- 定义学生类
- 创建HashMap集合对象
- 创建学生对象
- 把学生添加到集合
- 遍历集合
- 在学生类中重写两个方法
- 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;}
}