来自文件列表的HashMap

时间:2013-09-09 17:49:41

标签: java hashmap

我想探索使用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,这样我就可以添加这个功能了。如果有其他数据类型或方法来组织这些数据,我想听听你对此的看法。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您可以使用MultiMap,它为同一个密钥存储多个值。

  1. Multimap之
  2.    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);
    

    希望这会有所帮助。 如果您有疑问,请告诉我。