我有以下格式的HashMap。帶有列表值爲屬性的java hashmap
HashMap<String, List<String>> map
我想沒有任何運氣找到最好的方式來寫出這個屬性文件,這可能嗎?我對HashMap<String, String> hashmap
沒有任何問題,但是當值是一個List時,我無法弄清楚將其存儲的最佳方法。我不在乎它是否以xml格式或任何其他格式輸出,只是讓我可以輕鬆打開該文件並將其序列化或放入散列表中。
感謝任何方向
我有以下格式的HashMap。帶有列表值爲屬性的java hashmap
HashMap<String, List<String>> map
我想沒有任何運氣找到最好的方式來寫出這個屬性文件,這可能嗎?我對HashMap<String, String> hashmap
沒有任何問題,但是當值是一個List時,我無法弄清楚將其存儲的最佳方法。我不在乎它是否以xml格式或任何其他格式輸出,只是讓我可以輕鬆打開該文件並將其序列化或放入散列表中。
感謝任何方向
一個HashMap是序列化;所以你可以默認這樣做。
FileOutputStream fileStream = new FileOutputStream("map.map");
ObjectOutputStream os = new ObjectOutputStream(fileStream);
os.writeObject(map);
os.close();
這是我希望做的,我的值是一個List是一個子列表,這是造成一個問題,但不確定最好的方法呢。 – Green
我不知道現在你在做什麼,但你永遠可以得到一組Map.Entry<String,List<String>>
情況下,構成該地圖,並把它們寫出來你想要的任何方式。請參閱this。
的僞代碼看起來像
for (Map.Entry<String,List<String>> entry : map.entrySet()) {
String key = entry.getKey();
List<String> value = entry.getValue();
// now loop over value, which will be of type List<String>
}
首先,你可能要考慮使用番石榴一個ListMultimap
。它實現了一個Map<Key, List<Value>>
。
接下來,我將設置一個XML模式,其中每個元素都有一個名稱和一個值列表。使用JAXB將數據編組到一個文件。
屬性是字符串。 Concat'List'以逗號分隔。例如'value1,value2,value3,value4'並將其添加到您的Properties對象中。 –
@BrianRoach假設值的字符串不包含逗號。 –
@John - 嗯,是的。如果他們這樣做,你可以引用的價值觀,用管道而不是逗號等等...不是火箭科學:) –