实现List和Map的数据转换

实现 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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值