一、ArrayList嵌套HashMap
1.例题
2.代码演示
import java.util.Objects;
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;
}
//equals()方法和hashCode()方法通过Alt+Enter直接重写,他确保不会在HashMap中添加成员变量相同的集合
@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);
}
}
测试类:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class ArrayListIncludeHashMapDemo {
public static void main(String[] args) {
Student student = new Student("诸葛东", 21);
Student student1 = new Student("派大昕", 15);
Student student2 = new Student("嘤嘤嘤", 18);
Student student3 = new Student("嘻嘻嘻", 25);
ArrayList<HashMap<Student, String>> arrayList = new ArrayList();
HashMap<Student, String> map = new HashMap();
map.put(student, "001");
map.put(student1, "002");
arrayList.add(map);
HashMap<Student, String> map1 = new HashMap();
map.put(student2, "001");
map.put(student3, "002");
arrayList.add(map1);
for (HashMap<Student, String> ss:arrayList) {
Set<Map.Entry<Student, String>> set=ss.entrySet();
for (Map.Entry<Student, String> studentStringEntry:set){
System.out.println(studentStringEntry.getKey().getName()+","+studentStringEntry.getKey().getAge()+","+studentStringEntry.getValue());
}
}
}
}
输出:
诸葛东,21,001
派大昕,15,002
嘤嘤嘤,18,001
嘻嘻嘻,25,002