欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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
周五 周六:测试1209: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

相关标签: java