使用逗号分隔的字符串将地图的属性转换为Map <string,list <string>&gt; </string,list <string>

时间:2013-11-27 12:54:37

标签: spring spring-3

有一个属性文件,其结构如下:

prob1=a,b,c,d
prob2=e,f,j,h

我们希望将其转换为Map<String,List<String>>

我知道我可以读取地图并从属性文件中创建一个地图bean:

<util:properties id="probs"
location="classpath:/configs/sample.properties" />

我知道我可以将逗号分隔的字符串列表转换为List:

@Value("#{'${prob1}'.split(',')}") 
private List<String> Probs;

但我不知道如何实现Map<String,List<String>>

1 个答案:

答案 0 :(得分:0)

为什么你首先想要一个Map<String,List<String>>,即那个Properties无法实现的呢?

否则,快速而肮脏的方法是这样的:

Map<String,List<String>> map = new HashMap<String,List<String>>();
for ( Map.Entry<Object,Object> entry : properties.entrySet() )
{
    List<String> list = new ArrayList<String>();
    list.addAll( Arrays.asList( ((String)entry.getValue()).split( "," ) ) );
    map.put( (String)entry.getKey() , list );
}

干杯,