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