小记Spring工具类MultiValueMap

     在看Zuul的源码(org.springframework.cloud.netflix.zuul.util.RequestContentDataExtractor.java)时发现一个从来没见过的MultiValueMap,点进去才知道这是Spring提供的一个key可以有多个Value的Map集合。

Zuul的源码
Zuul使用MultiValueMap的相关源码

    以前为了实现这种效果在代码里声明成类似结构Map<String, List<Object>> map = new HashMap<>()可以被替换了。因为这个MultiValueMap本质上就是通过继承Map加了泛型实现的,看源码

   

 

 


  测试代码:

public static void main(String[] args) {
        MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap();
        multiValueMap.add("北京", "一中");
        multiValueMap.add("北京", "二中");
        multiValueMap.add("济南", "一小");
        multiValueMap.add("北京", "三中");
        multiValueMap.add("济南", "二小");
        List<Object> list = new ArrayList<>();
        list.add("鸡蛋");
        list.add("西红柿");
        list.add("辣椒");
        multiValueMap.put("合肥", list);
        multiValueMap.add("测试", "只有一个元素");
        for (Object item : multiValueMap.keySet()) {
            List<Object> listObj = multiValueMap.get(item);
            System.out.println("Key:" + item + "--Value:" + listObj);
        }
    }

打印结果:

Key:北京--Value:[一中, 二中, 三中]
Key:济南--Value:[一小, 二小]
Key:合肥--Value:[鸡蛋, 西红柿, 辣椒]
Key:测试--Value:[只有一个元素]

Over~~

发布了21 篇原创文章 · 获赞 2 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览