从没有MultiMap的用户输入动态创建的ArrayList

时间:2014-11-10 20:28:39

标签: java loops arraylist hashmap

我正在尝试将用户输入和数据排序到HashMap内的多个ArrayLists中,而不使用MultiMap。 我目前有这个声明:

HashMap<Integer, ArrayList<String>> myMap = new HashMap<Integer, ArrayList<String>>();

用户输入的示例如下所示:

1 String
2 String
2 String_b
3 String

我需要生成的地图如下所示:

[1]
  ---- String
[2]
  ---- String
  ---- String_b
[3]
  ---- String

我一直在环顾四周,看到了Guava创建的涉及MultiMap的东西。完美的senario是能够做myMap.put(1, "String"); myMap.put(1, "String_b");之类的事情,所以我可以单独添加每个元素,而不必先创建ArrayList。

如果我需要澄清,请告诉我!

1 个答案:

答案 0 :(得分:0)

那是番石榴MultiMap可以做的事情:

Multimap<Integer, String> myMultimap = ArrayListMultimap.create();

myMultimap.put(1, "a");
myMultimap.put(1, "b");
myMultimap.put(1, "c");
myMultimap.put(2, "x");

另一个选项是来自Apache Commons Collections的MultiMap

MultiMap mhm = new MultiHashMap();
mhm.put(key, "A");
mhm.put(key, "B");
mhm.put(key, "C");
Collection coll = (Collection) mhm.get(key);