小记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~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章