MultiValueMap介绍
MultiValueMap:org.springframework.util.MultiValueMap extends Map<K, List<V>>.接口MultiValueMap实现Map<K, List<V>>,和以往对map的使用习惯来讲区别就是一个key值可以有多个Value.
与之前使用Map<k,List<V>>相比,对List<V>操作更加方便。
下来用代码来介绍:
[code]MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>();multiValueMap.add(\"a\",\"1\");multiValueMap.add(\"a\",\"2\");multiValueMap.add(\"a\",\"3\");multiValueMap.add(\"b\",\"A\");multiValueMap.add(\"b\",\"B\");multiValueMap.add(\"b\",\"C\");multiValueMap.add(\"b\",\"D\");
V getFirst(K key);
[code]// 获取key值对应List第一个值String str1 = multiValueMap.getFirst(\"a\"); // str1 = \"1\"String str2 = multiValueMap.getFirst(\"b\"); // str2 = \"A\"
void add(K key, V value);
[code]multiValueMap.add(\"c\",\"one\"); // 向map里添加新key,及valuemultiValueMap.add(\"a\",\"5\"); // key值存在,则对应List添加元素// multiValueMap : {a=[1, 2, 3, 5], b=[A, B, C, D], c=[one]}
void set(K key, V value);
[code]multiValueMap.set(\"a\",\"s\"); // key值存在,则更新对应valuemultiValueMap.set(\"d\",\"dog\"); // key值不存在,则添加数据// multiValueMap: {a=[s], b=[A, B, C, D], c=[one], d=[dog]}
void setAll(Map<K, V> values);
[code]List<String> list = new ArrayList<>();list.add(\"+\");list.add(\"-\");list.add(\"*\");list.add(\"÷\");Map<String,List<String>> map = new HashMap<>();map.put(\"d\",list); // 构建MapmultiValueMap.putAll(map); // 作用和set类似,如果map的key值在multiValueMap存在则更新,不存在添加数据// multiValueMap : {a=[1, 2, 3, 5], b=[A, B, C, D], c=[one], d=[+, -, *, ÷]}
Map<K, V> toSingleValueMap();
[code]// multiValueMap : {a=[+, -, *, ÷], b=[A, B, C, D], c=[one]}Map<String, String> stringStringMap = multiValueMap.toSingleValueMap();// stringStringMap :{a=+, b=A, c=one}// 将multiValueMap转换为Map<String, String>,key值不变,value去对应list第一个值