-2

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

任何帮助将非常感激。

4

1 回答 1

3

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

  1. 多图
   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. 哈希映射

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);

希望这可以帮助。如果您有任何问题,请告诉我。

于 2013-09-09T17:55:47.657 回答