问题:
实现List和Map数据的转换。具体要求如下:
定义方法public void mapToList( )将Map中Value值Student信息封装到 List
创建实体类StudentEntry,可以存储Map中每个Entry的信息,使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息,并使用Student的id属性作为key,存入Map,创建List对象,每个元素类型是StudentEntry,将Map中每个Entry信息放入List对象。
代码:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DataConversion {
public static void main(String[] args) {
Map<Integer, Student> studentMap = new HashMap<>();
studentMap.put(1, new Student(1, "Alice", 20, "Female"));
studentMap.put(2, new Student(2, "Bob", 22, "Male"));
studentMap.put(3, new Student(3, "Charlie", 19, "Male"));
List<StudentEntry> studentEntryList = new ArrayList<>();
for (Map.Entry<Integer, Student> entry : studentMap.entrySet()) {
StudentEntry studentEntry = new StudentEntry(entry.getKey(), entry.getValue());
studentEntryList.add(studentEntry);
}
// 遍历List,输出每个StudentEntry信息
for (StudentEntry studentEntry : studentEntryList) {
System.out.println(studentEntry);
}
}
static class StudentEntry {
private int id;
private Student student;
public StudentEntry(int id, Student student) {
this.id = id;
this.student = student;
}
public int getId() {
return id;
}
public Student getStudent() {
return student;
}
@Override
public String toString() {
return "StudentEntry{" +
"id=" + id +
", student=" + student +
'}';
}
}
static class Student {
private int id;
private String name;
private int age;
private String sex;
public Student(int id, String name, int age, String sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getSex() {
return sex;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
}