3.实现List和Map数据的转换。具体要求如下:
功能1:定义方法public void listToMap( ){ }将List中Student元素封装到Map中
1)使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息并加入List
2)遍历List,输出每个Student信息
3)将List中数据放入Map,使用Student的id属性作为key,使用Student对象信息作为value
4)遍历Map,输出每个Entry的key和value
public class TestListToMap {
public void listToMap () {
//1.创建多个学生信息
Student stu1 = new Student(110, "小明", 23, 98.0);
Student stu2 = new Student(111, "大刚", 21, 80.5);
Student stu3 = new Student(112, "小白", 12, 93.0);
//2.加入List
List<Student> list = new ArrayList<Student>();
list.add(stu1);
list.add(stu2);
list.add(stu3);
//3.遍历List,输出每个Student信息
for(Student stu:list){
System.out.println(stu);
}
//4.将List中数据放入Map,使用Student的id属性作为key
Map<Integer, Student> map = new HashMap<Integer, Student>();
Iterator<Student> it = list.iterator();
while(it.hasNext()){
Student stu = it.next();
map.put(stu.getId(), stu);
}
//5.遍历Map,输出每个Entry的key和value
Set<Entry<Integer,Student>> entrySet = map.entrySet();
for(Entry<Integer,Student> entry:entrySet){
System.out.println(entry.getKey()+"---->"+entry.getValue());
}
}
}
功能2:定义方法public void mapToList( ){ }将Map中Student映射信息封装到List
1)创建实体类StudentEntry,可以存储Map中每个Entry的信息
2)使用构造方法Student(int id,String name,int age,String sex )创建多个学生信息,并使用Student的id属性作为key,存入Map
3)创建List对象,每个元素类型是StudentEntry
4)将Map中每个Entry信息放入List对象
public class StudentEntry {
private int key;//关键字
private Student stu;//学生
public int getKey() {
return key;
}
public void setKey(int key) {
this.key = key;
}
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
}
public class TestMapToList {
public void mapToList () {
//1.创建多个学生信息
Student stu1 = new Student(110, "小明", 23, 98.0);
Student stu2 = new Student(111, "大刚", 21, 80.5);
Student stu3 = new Student(112, "小白", 12, 93.0);
//2.使用Student的id属性作为key,存入Map
Map<Integer, Student> map = new HashMap<Integer, Student>();
map.put(stu1.getId(), stu1);
map.put(stu2.getId(), stu2);
map.put(stu2.getId(), stu3);
//3.创建List对象,每个元素类型是StudentEntry
List<StudentEntry> list = new ArrayList<StudentEntry>();
//4.将Map对象转化为List集合
for (Entry<Integer, Student> entry : map.entrySet()) {
StudentEntry studentEntry = new StudentEntry();
// 将map中的一个映射关系,封装为一个studentEntry对象
studentEntry.setKey(entry.getKey());
studentEntry.setStu(entry.getValue());
// 将studentEntry对象List集合
list.add(studentEntry);
}
//5.遍历Map
for (StudentEntry se : list) {
System.out.println(se.getKey() + "\t" + se.getStu());
}
}
}