前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Map和List的碰撞

Map和List的碰撞

作者头像
阿超
发布2022-08-16 15:36:38
2850
发布2022-08-16 15:36:38
举报
文章被收录于专栏:快乐阿超

大家都知道map和list是我们常用的数据结构

比如hashmap和arraylist

在实际开发中,有时会遇到一个问题,比如加了个需求,原来的数据库字段不够用,需要加字段,这样会导致很多处做修改,而我们如果灵活使用map和list就可以一个用字段以json的格式存放很多数据,但这种形式也有弊端,比如难以维护、难以拓展,所以一般情况下,能加字段,加表的话就先别用这种形式

但如果遇到不能动数据库的情况,就可以以这种方式(你甚至可以以这种方式把整个项目存放到一条数据里)😂废话不多说:

代码语言:javascript
复制
package com.ruben;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: JsonTestController
 * @Description:
 * @Date: 2020/6/12 14:51
 * *
 * @author: achao<achao1441470436 @ gmail.com>
 * @version: 1.0
 * @since: JDK 1.8
 */
@RestController
@RequestMapping("json")
public class JsonTestController {
    @PostMapping
    public String jsonTest(@RequestBody Map<String, List<Map<String, Object>>> mapListMap) {
        List<Map<String, Object>> list = mapListMap.get("1234567");
        list.forEach(map -> {
            String beforeUpdate = (String) map.get("zipName");
            System.out.println(beforeUpdate);
            map.put("zipName", "修改后的名字");
            System.out.println((String) map.get("zipName"));
        });
        return "成功!";
    }
}

请求的数据格式

代码语言:javascript
复制
{
    "123456": [
        {
            "videoId": "ads",
            "zipUrl": "adsdas",
            "zipName": "asdaw"
        }
    ],
    "1234567": [
        {
            "videoId": "ads",
            "zipUrl": "adsdas",
            "zipName": "修改前的名字"
        },
        {
            "videoId": "ads",
            "zipUrl": "adsdas",
            "zipName": "修改前的名字2"
        }
    ]
}

输出结果

代码语言:javascript
复制
修改前的名字
修改后的名字
修改前的名字2
修改后的名字

如果要对单个执行具体修改,就可以在forEach里把它们放入另一个list<Map<String,Object>>里

感觉有点像套娃👶

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档