我一直在四處尋找重建地圖,但不能拿出使用Java 8優雅實用的解決方案這是我要解決的問題:功能的解決方案,從字符串
我有「序列化」的地圖進入一個字符串,例如
{ type -> 'fruit',
color -> 'yellow',
age -> 5 }
將成爲:
type:fruit;color:yellow;age:5
現在,我要重新從字符串的原始地圖
Arrays.stream(input.split(";"))
.map(v -> v.split(":"))
.collect(Collectors.toMap(c -> c[0], c -> c.[1]);
注意上面的代碼將導致NullPointerException
如果沒有「:」在列表中,這可以與解決:
c.length > 1 ? c[1] : c[0]
但是,這感覺不對。任何使用Java8 API的建議或替代方案?
如果在值內有';'或':'會怎麼樣? –