MultiValueMap 属于springframework中的map,继承Map
package org.springframework.util;
import java.util.List;
import java.util.Map;
public interface MultiValueMap<K, V> extends Map<K, List<V>> {
V getFirst(K var1);
void add(K var1, V var2);
void set(K var1, V var2);
void setAll(Map<K, V> var1);
Map<K, V> toSingleValueMap();
}
它有什么作用呢:
jdk里的hashmap中存储key ,value都是一个key 对应一个value,如果重复put相同key的value,就会覆盖以前的value.
而MultiValueMap则针对相同的key 会存储成一个链表形式。
它的实现:
MultiValueMap<String, String> mvm = new LinkedMultiValueMap<>();
Map<String, String> params = new HashMap<>();
params.put("a", "a1");
params.put("a", "a2");
params.put("b", "b");
MultiValueMap<String, String> mvm = new LinkedMultiValueMap<>();
params.forEach(mvm::add);
// 遍历
Set<String> set = params.keySet();
for (String key : keySet) {
List<String> values = stringMultiValueMap.get(key);
System.out.println(StringUtils.join(values.toArray()," ")+":"+key);
}
结果为: a1,a2 :a
b:b