使用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);
HashMapString> hashMap=new HashMap<>();
hashMap.put(s1,"汉族");
hashMap.put(s2,"回族");
hashMap.put(s4,"傣族");
SetString>> entries = hashMap.entrySet();
// for (Map.Entry 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;
}
}
}
如果想使用 lambda
表达式去遍历 HashMap
的话,方法很简单,
HashMap 类自身就有一个 forEach()
方法,直接用这个就行,示例代码如下:
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,"傣族");
// 使用 lamda 表达式遍历 HashMap
hashMap.forEach((k, v)-> System.out.println(k + ", "+ v));
}
}
如果觉得此回答不错的话,请点个采纳
map.forEach((k,v)->System.out.println("k="+k + " v="+v));