我正在尝试将用户输入和数据排序到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。
如果我需要澄清,请告诉我!
答案 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);