LinkedMultiValueMap的说明

本文深入探讨了LinkedMultiValueMap在处理form表单数据时的应用,特别是在键相同但值不同的场景下如何有效存储数据。文章详细解释了LinkedMultiValueMap的各种操作方法,如添加、获取和删除键值对,并通过实例展示了其在实际开发中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、今天写代码遇到存值采用LinkedMultiValueMap的情况。

它应用在form表单数据,

    public static ObjectMapper mapper = new ObjectMapper();

    params = mapper.readValue(formdatas, LinkedMultiValueMap.class);

    //formdatas 是json字符串

2、采用这种方法反序列化的时候,如果json字符串中有相同的key,存的时候值会以数组的方式保存,

  

 添加一个Key对应一个Value的:void add(K, V);
  添加一个Key对应多个Value的:void add(K, List);
  设置一个Key对应一个Value的:void set(K, V);
  设置一个Key对应多个Value的:void set(K, List);
  移除一个Key和它对应的Value:List remove(K);
  清除所有Value的:void clear();
  拿到所有Key的集合:Set keySet();
  拿到所有的值:List values();
  拿到一个Key对应的某个值:V getValue(K, index);
  拿到一个Key对应的所有Value:List getValues(K);
  拿到MultiValueMap的大小:int size();
  判断是否为空MultiValueMap:boolean isEmpty();
  判断是否包含某个Key:boolean containKey(K);


    例如:linkedMultiValueMap.add("name", "t1");
         linkedMultiValueMap.add("name", "t2");
         linkedMultiValueMap.add("name", "t3");
    保存结果为:name[t1, t2, t3]

比如我们在做表单提交的时候,表单数据中可能存在键相同值不同的情况,可以用这种方法存值。

 

 

 

转载于:https://www.cnblogs.com/DiiDii/p/11010893.html

package com.hlsc.DTO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.Date; /** * 定时任务DTO * * @author fwj * @date 2025/7/21 */ @Data @Schema(description = "Xxl定时任务传输对象") public class XxlJobDTO { /** * 任务名称 */ @Schema(description = "任务名称") private String jobDesc; /** * 负责人 */ @Schema(description = "负责人") private String author; /** * CRON配置 */ @Schema(description = "CRON配置") private String scheduleConf; /** * 执行器主键ID */ @Schema(description = "执行器主键ID") private final String jobGroup = "1"; /** * 调度类型 */ @Schema(description = "调度类型") private final String scheduleType = "CRON"; /** * 调度过期策略 */ @Schema(description = "调度过期策略") private final String misfireStrategy = "DO_NOTHING"; /** * 执行器路由策略 */ @Schema(description = "执行器路由策略") private final String executorRouteStrategy = "FIRST"; /** * 任务Handler名称 */ @Schema(description = "任务Handler名称") private final String executorHandler = "demoJobHandler"; // /** // * 任务参数 // */ // @Schema(description = "任务参数") // private String executorParam; /** * 阻塞处理策略 */ @Schema(description = "阻塞处理策略") private final String executorBlockStrategy = "SERIAL_EXECUTION"; /** * GLUE类型 */ @Schema(description = "GLUE类型") private final String glueType = "BEAN"; } 化为MultiValueMap<String, String> map = new LinkedMultiValueMap<>();的工具类
最新发布
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值