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

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