实现 List 和 Map 数据的转换,具体要求如下。
功能1:定义方法 public void listToMap ( ) {},将 List 中的 Student 元素封装到 Map 中。
①使用构造器 Student ( String name , int age , String sex )创建多个学生信息并加入 List 。
②遍历 List ,输出每个 Student 信息。
③将 List 中的数据放入 Map ,使用 Student 的 id 属性作为 key ,使用 Student 对象信息作为 value 。
④遍历 Map ,输出每个 Entry 的 key 和 value 。
功能2:定义方法 public void mapToList {},将 Map 中的 Student 映射
信息封装到 List 。
①创建实体类 StudentEntry ,用于存储 Map 中每个 Entry 的信息。
②使用构造器 Student ( String name , int age , String sex )创建多个学生信息,并使用 Student 的 id 属性作为 key ,并存入 Map 。
③创建 List 对象,每个元素的类型是 StudentEntry 。
④将 Map 中的每个 Entry 信息放入 List 对象。
package Exmples;
import java.util.*;
public class studentTest {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
List<Student> list=new ArrayList<Student>();
Student s1=new Student(sc.nextInt(), sc.next(), sc.next());
Student s2=new Student(sc.nextInt(), sc.next(), sc.next());
Student s3=new Student(sc.nextInt(), sc.next(), sc.next());
list.add(s1);
list.add(s2);
list.add(s3);
Iterator<Student> it= list.iterator();
while(it.hasNext()){
Student s=it.next();
System.out.println(s.age+s.name+s.sex);
listToMap(list);
}
mapToList();
}
/*将 List 中的数据放入 Map ,使用 Student 的 id 属性作为 key ,
使用 Student 对象信息作为 value
*/
public static void listToMap(List<Student> list1){
Map<Integer,String> map=new HashMap<Integer,String>();
for(Student stu:list1){
map.put(stu.age,stu.name+" "+stu.sex);
}
Set<Map.Entry<Integer,String>> s=map.entrySet();
for(Iterator<Map.Entry<Integer,String>> it = s.iterator();it.hasNext();) {
Map.Entry<Integer, String> e = it.next();
System.out.println(e.getKey() + " " + e.getValue());
}
}
/*定义方法 public void mapToList {},将 Map 中的 Student 映射
信息封装到 List
*/
public static void mapToList(){
Scanner sc=new Scanner(System.in);
Student stu1=new Student(sc.nextInt(),sc.next(), sc.next());
Student stu2=new Student(sc.nextInt(),sc.next(), sc.next());
Map<Integer,String> map=new HashMap<Integer,String>();
List<StudentEntry> list1=new ArrayList<StudentEntry>();
map.put(stu1.age, stu1.name+stu1.sex);
map.put(stu2.age, stu2.name+stu2.sex);
Set<Map.Entry<Integer,String>> s=map.entrySet();
Iterator <Map.Entry<Integer,String>> it=s.iterator();
while(it.hasNext()){
Map.Entry<Integer,String> e=it.next();
StudentEntry s1=new StudentEntry(e.getKey(),e.getValue());
list1.add(s1);
}
Iterator<StudentEntry> its= list1.iterator();
while(its.hasNext()){
StudentEntry s2=its.next();
System.out.println(s2.id+" "+s2.value);
}
}
}
//使用构造器 Student ( String name , int age , String sex )创建多个学生信息
class Student{
int age;
String name;
String sex;
public Student(int age,String name,String sex){
this.age=age;
this.name=name;
this.sex=sex;
}
}
//创建实体类 StudentEntry ,用于存储 Map 中每个 Entry 的信息。
class StudentEntry{
int id;
String value;
public StudentEntry(int id,String value){
this.id=id;
this.value=value;
}
}