带有List作为属性值的java hashmap

时间:2011-10-10 20:27:07

标签: java list hashmap

我有以下格式的HashMap。

HashMap<String, List<String>> map

我正在努力寻找将此写入属性文件的最佳方法,这可能吗?我对HashMap<String, String> hashmap没有问题,但当值为List时,我无法找出存储它的最佳方法。我不在乎它是以xml格式还是任何其他格式,只是这样我就可以轻松打开文件并将其序列化,或者将其反馈到hashmap中。

感谢任何方向

3 个答案:

答案 0 :(得分:4)

首先,您可能需要考虑使用Guava中的ListMultimap。它实现了Map<Key, List<Value>>

接下来,我将设置一个XML Schema,其中每个元素都有一个名称和一个值列表。使用JAXB将数据编组到文件中。

答案 1 :(得分:1)

我不确定你目前在做什么,但你总是可以得到一组组成地图的Map.Entry<String,List<String>>个实例,并以任何你想要的方式写出来。请参阅this

psuedo代码看起来像

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

答案 2 :(得分:0)

HashMap是Serializable;所以你可以默认这样做。

FileOutputStream fileStream = new FileOutputStream("map.map");
ObjectOutputStream os = new ObjectOutputStream(fileStream);
os.writeObject(map);
os.close();