教老婆学java系列之奇妙的数据结构三

教老婆学java之奇妙的数据结构三

Map与其他

发难环节:如何将这些数据发送给另一个方法或前端

学生
{姓名:张三, 性别:男,爱好:打球}
{姓名:李四 ,性别:女,爱好:打球}
老师
{姓名:碟子,性别:男,爱好:爱老婆,特点:高富}
{姓名:锅锅,性别:男,爱好:爱老婆,特点:帅气}
@RequestMapping("dalaopo")
    @ResponseBody
    public Map get(){

        Map<String,List<Map<String,String>>> data = new HashMap<>();
        Map<String,String> zhansan = new HashMap<>();
        zhansan.put("name","张三");
        zhansan.put("sex","男");
        zhansan.put("love","打球");

        Map<String,String> lisi = new HashMap<>();
        lisi.put("name","李四");
        lisi.put("sex","女");
        lisi.put("love","打球");

        List<Map<String,String>> xuesheng = new ArrayList<>();
        xuesheng.add(zhansan);
        xuesheng.add(lisi);

        Map<String,String> diezi = new HashMap<>();
        diezi.put("name","碟子");
        diezi.put("sex","男");
        diezi.put("love","爱老婆");
        diezi.put("others","高富");

        Map<String,String> guoguo = new HashMap<>();
        guoguo.put("name","锅锅");
        guoguo.put("sex","男");
        guoguo.put("love","爱老婆");
        guoguo.put("others","帅气");

        List<Map<String,String>> laoshi = new ArrayList<>();
        laoshi.add(diezi);
        laoshi.add(guoguo);

        data.put("xuesheng",xuesheng);
        data.put("laoshi",laoshi);
        return data;
    }
//答案
{
	"xuesheng": [{
		"love": "打球",
		"sex": "男",
		"name": "张三"
	}, {
		"love": "打球",
		"sex": "女",
		"name": "李四"
	}],
	"laoshi": [{
		"love": "爱老婆",
		"sex": "男",
		"name": "碟子",
		"others": "高富"
	}, {
		"love": "爱老婆",
		"sex": "男",
		"name": "锅锅",
		"others": "帅气"
	}]
}

继续:页面按顺序取,每次都是先xuesheng,后laoshi。你帮我换个顺序

data.put("laoshi",laoshi);
data.put("xuesheng",xuesheng);
//为啥不成。哦哦哦
Map<String,List<Map<String,String>>> data = new LinkedHashMap<>();
//哥哥快夸我

施教环节:

1.记住写Java不要闲麻烦,有好多繁琐的判断啥的
2.hash和link的理解(自己去百度)
3.数据结构的合理利用,什么时候用list什么时候用Map。直观体会

拓展环节:如果是反复使用这些数据呢,怎么挑选数据结构

对象的理解。
1.对象可以做数据结构体,如Entity,Dto,他们的使命是数据载体
2.对象可以做工具类。集成很多功能
3.两者皆有,就要看是方法服从数据,还是数据是服务于方法
根据这样的思路,就可以理解mvc分层代码的区别了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值