赞
踩
平时比较少接触MultiValueMap。昨天看到了一行代码:
MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
一时间,技痒难耐。
根据百度的各位吃瓜群众的解释:MultiValueMap 是一个Key后面存值的方式是链表方式存在的。
简单说,就是一个Key里面可以Add多个值,不会被覆盖。
举个锤子:
- param.add("phone", "111");
- param.add("phone", "222");
如果是Map形式存储 的话,key = phone的键值应该是“222”。
如果使用的是MultiValueMap。你可以简单理解为 phone的键值是["111","222"]。说明下,这个数据类型是List不是数组。这里只是简单描述存值。
作为MultiValueMap存值很方便,取值的时候咋办呢?
下面上个简单的循环读取方式(用了for嵌套),您可以试下,在小范围内用的话,应该还是可以的。
上一下测试代码:
- @Test
- public void testMultiValueMap() {
-
- MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
- param.add("phone", "111");
- param.add("phone", "222");
- param.add("temp_id", "temp_id1");
- param.add("param","param");
- param.add("param","param2");
- param.add("temp_id", "temp_id2");
- param.add("phone", "333");
- param.add("param","param3");
-
- System.out.println("======== 我是邪恶的分界线 ===========");
-
- for (String key : param.keySet()) {
-
- List<String> values = ((LinkedMultiValueMap<String, String>) param).get(key);
- System.out.println("key : "+key);
-
- for (String value : Objects.requireNonNull(values)) {
-
- System.out.println( "value: " + value);
- }
- }
- }
输出结果如下所示:
基本上将所有的key和key值都进行了输出。
中间您可以根据需要加上您复杂的、晦涩的、难懂的逻辑代码了。
下面,请开始您的表演!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。