MultiValueMap的使用 (Map之一个Key存多个Value的MultiValueMap(一个键多个值))
程序员文章站
2024-01-21 13:39:34
MultiValueMap可以让一个key对应多个value,感觉是value产生了链表结构,这里可以很好的解决一些不好处理的字符串问题。当然你也可以用stringBuffer去拼,我觉得这个效果更好,效率更高。MultiValueMap stringMultiValueMap = new LinkedMultiValueMap<>(); stringMultiValueMap.add("早班 9:00-11:00", "周一")...
MultiValueMap可以让一个key对应多个value,感觉是value产生了链表结构,这里可以很好的解决一些不好处理的字符串问题。当然你也可以用stringBuffer去拼,我觉得这个效果更好,效率更高。
Map 和 MultiValueMap 的区别
// MultiValueMap 一个 key 可以对应多个 value
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.add("name", "小明");
map.add("name", "小红");
System.out.println(map.toString());
// Map 一个 key 对应一个 value
Map<String, String> hashMap = new HashMap<String, String>();
hashMap.put("name", "小明");
hashMap.put("name", "小红");
System.out.println(hashMap.toString());
--------------output---------------
{name=[小明, 小红]}
{name=小红}
MultiValueMap的使用
MultiValueMap<String, String> stringMultiValueMap = new LinkedMultiValueMap<>();
stringMultiValueMap.add("早班 9:00-11:00", "周一");
stringMultiValueMap.add("早班 9:00-11:00", "周二");
stringMultiValueMap.add("中班 13:00-16:00", "周三");
stringMultiValueMap.add("早班 9:00-11:00", "周四");
stringMultiValueMap.add("测试1天2次 09:00 - 12:00", "周五");
stringMultiValueMap.add("测试1天2次 09:00 - 12:00", "周六");
stringMultiValueMap.add("中班 13:00-16:00", "周日");
//打印所有值
Set<String> keySet = stringMultiValueMap.keySet();
for (String key : keySet) {
List<String> values = stringMultiValueMap.get(key);
System.out.println(StringUtils.join(values.toArray()," ")+":"+key);
}
输出
周一 周二 周四:早班 9:00-11:00
周三 周日:中班 13:00-16:00
周五 周六:测试1天2次 09:00 - 12:00
第二种
public static void main(String[] args) {
MultiValueMap<String, String> stringMultiValueMap = new LinkedMultiValueMap<>();
// 添加Key为name的
stringMultiValueMap.add("name", "yolanda");
stringMultiValueMap.add("name", "yanzhenjie");
stringMultiValueMap.add("name", "严振杰");
stringMultiValueMap.add("name", "尤兰达");
// 添加Key为domain的
stringMultiValueMap.add("domain", "http://www.yanzhenjie.com");
stringMultiValueMap.add("domain", "http://www.nohttp.net");
// 拿到某个key的某个值
System.out.println("name的第三个值:" + stringMultiValueMap.getValue("name", 3));
// 打印所有值
Set<String> keySet = stringMultiValueMap.keySet();
for (String key : keySet) {
List<String> values = stringMultiValueMap.getValues(key);
for (String value : values) {
System.out.println(key + ": " + value);
}
}
}
输出
name的第三个值:尤兰达
name: yolanda
name: yanzhenjie
name: 严振杰
name: 尤兰达
domain: http://www.yanzhenjie.com
domain: http://www.nohttp.net
本文地址:https://blog.csdn.net/qq_42981242/article/details/109862291