我想探索使用HashMap跟踪文件之间的变化的选项。我正在使用一些配置/文本文件来提供一组状态文档:
配置文件如下所示:
STATUS1 = "Doc1.pdf, Doc2.xls, Doc5.doc"
STATUS2 = "Doc8.pdf, Doc6.doc"
STATUS3 = "Doc10.pdf"
...
不必为每个实例创建单独的HashMap,如下所示:
Map<String, String> map1 = new HashMap<String, String>();
Map<String, String> map2 = new HashMap<String, String>();
Map<String, String> map3 = new HashMap<String, String>();
map1.put("STATUS1", "Doc1.pdf");
map2.put("STATUS1", "Doc2.xls");
map3.put("STATUS1", "Doc5.doc");
我想只有一个Map,其中包含状态键和映射到该键的值。
我在解析文件时不需要帮助,我只需要帮助实现HashMap或Map,这样我就可以添加这个功能了。如果有其他数据类型或方法来组织这些数据,我想听听你对此的看法。
非常感谢任何帮助。
答案 0 :(得分:3)
您可以使用MultiMap,它为同一个密钥存储多个值。
Multimap<String, String> myMultimap = ArrayListMultimap.create(); // Adding some key/value myMultimap.put("STATUS1", "somePDF"); myMultimap.put("STATUS1", "someDOC"); myMultimap.put("STATUS1", "someXCL"); myMultimap.put("STATUS2","someFormat"); // Getting the size int size = myMultimap.size(); System.out.println(size); // 4 // Getting values Collection<string> stats1 = myMultimap.get("STATUS1"); System.out.println(stats1); // [somePDF, someDOC, someXCL]
2。的 HashMap中强>
With HashMap you can have something like,
List<String> listOfDocs = new ArrayList<String>();
listOfDocs.add("somePDF");
listOfDocs.add("someDOC");
listOfDocs.add("someFormat");
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
// key would be your STATUS
// Values would be ListOfDocs you need.
map.put("STATUS1", listOfDocs);
map.put("STATUS2", listOfDocs2);
map.put("STATUS3", listOfDocs3);
希望这会有所帮助。 如果您有疑问,请告诉我。