有一个属性文件,其结构如下:
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>>
答案 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 );
}
干杯,