MultiValueMap的循环读取操作
Posted 沛沛老爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MultiValueMap的循环读取操作相关的知识,希望对你有一定的参考价值。
平时比较少接触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值都进行了输出。
中间您可以根据需要加上您复杂的、晦涩的、难懂的逻辑代码了。
下面,请开始您的表演!
以上是关于MultiValueMap的循环读取操作的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NoClassDefFoundError: org/springframework/util/MultiValueMap