2013-11-27 181 views
1

有其結構如下屬性文件:轉換用逗號分隔的字符串映射的屬性映射<字符串,列表<String>>

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

我們希望將其轉換爲Map<String,List<String>>

我知道我可以看地圖,從屬性文件創建一個映射bean作爲:

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

我知道,我可以轉換逗號分隔字符串列表與列出:

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

但我不知道我怎麼能實現Map<String,List<String>>

+0

也許你應該看看'Properties.entrySet()',看看這可能導致。 –

+0

你能解釋一下嗎?!我怎樣才能訪問這個方法? –

+0

'屬性擴展HashTable <對象,對象>' - 我會在下面完整回答 –

回答

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); 
} 

乾杯,

+0

通過地圖>我可以找到map.get(「proper1」)。contains(「a」)。我想我無法通過屬性來實現它 順便說一句,我怎樣才能使用你的代碼,以便Spring爲我製作這個bean。我應該編寫一個bean來轉換自己,還是我可以用更少的代碼來完成它! –

相關問題