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]
比如我们在做表单提交的时候,表单数据中可能存在键相同值不同的情况,可以用这种方法存值。