MultiValueMap——一个key对应多个value

2016/11/21 Java

在实际应用中往往需要一个key对应多个value的情况,介绍几个第三方的api实现。

guava Multimap

package com.google.common.collect;

 ListMultimap<String,String> multiMap = ArrayListMultimap.create();
 multiMap.put("a","b");
 multiMap.put("a", "c");
 List<String> value = multiMap.get("a");             

对集合的扩充和增强,无论从简洁、易读和易维护等方面,gauva都是首选的。

apache MultiValueMap

 MultiValueMap  multiValueMap = new MultiValueMap();
 multiValueMap.put("a","b");
 multiValueMap.put("a", "c");
 Collection a =multiValueMap.getCollection("a");      

Spring MultiValueMap

最后是spring同样提供了MultiValueMap的一些基础操作,位于package org.springframework.util

 MultiValueMap<String,String> multiValueMap = new LinkedMultiValueMap();
 multiValueMap.add("a","b");
 multiValueMap.add("a", "c");
 List<String> value = multiValueMap.get("a");       

spring的实现最简单,通过封装Map<K, List<V>> map结构

截取的部分源码

Search

    Post Directory