java List和Map的相互转换

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());
		}
	}
}
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值