您的位置:首页 > 产品设计 > UI/UE

有关MultiValueMap的使用

2020-08-21 00:12 4419 查看

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,及value
multiValueMap.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值存在,则更新对应value
multiValueMap.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); // 构建Map
multiValueMap.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第一个值

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: