问题遇到的现象和发生背景
使用lamda表达式对HashMap进行遍历
用代码块功能插入代码,请勿粘贴截图
package SaveStudentUseHashMap;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Test01 {
public static void main(String[] args) {
Student s1=new Student("张三",20);
Student s2=new Student("李四",21);
Student s3=new Student("张三",20);
Student s4=new Student("王五",33);
HashMap<Student,String> hashMap=new HashMap<>();
hashMap.put(s1,"汉族");
hashMap.put(s2,"回族");
hashMap.put(s4,"傣族");
Set<Map.Entry<Student, String>> entries = hashMap.entrySet();
// for (Map.Entry<Student, String> entry : entries) {
// Student tempStudent=entry.getKey();
// String nativePlace=entry.getValue();
// System.out.println(tempStudent.name+tempStudent.age+nativePlace);
// }
}
}
Student 类
package SaveStudentUseHashMap;
public class Student {
String name;
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;
}
@Override
public boolean equals(Object obj) {
Student inputStudent=(Student)obj;
if(inputStudent.age==this.age&&inputStudent.name.equals(this.name)){
return true;
}else{
return false;
}
}
}