我正在使用multimap,如下所示,但如图所示,但问题是首先我要添加内容 list然后将它与密钥相关联,我可以在一行中自行完成。
Map<Integer, List<String>> multimap = new HashMap<Integer, List<String>>();
List<String> someList = new ArrayList<String>();
someList.add("abc");
someList.add("def");
someList.add("ght");
multimap.put(1, someList);
即添加列表内容,我正在使用密钥。
之类的东西 multimap.put(1, // adding the list in a single line here itslef );
答案 0 :(得分:4)
它不是很漂亮,但你可以按照
的方式做点什么multimap.put(1, new ArrayList<String>(Arrays.asList("abc", "def", "ght")));
答案 1 :(得分:2)
尝试使用以下代码:
multimap.put(1, Arrays.asList(new String[]{"abc","def","ght"}));
答案 2 :(得分:1)
您可以使用
List<String> someList = Arrays.asList("abc", "def", "ght");
答案 3 :(得分:1)
您正在手动实施Guavas Multimap,我建议您查看Guava解决方案。
Multimap<Integer, String> multimap = HashMultimap.create();
multimap.putAll(1, Lists.newArrayList("a", "b", "c"));
这个article很好地解释了Guava Multimap实现的一些优点。
虽然我们正在使用它,但是guava还提供了在一行(javadoc)上初始化列表的解决方案:
Lists.newArrayList("a", "b", "c");
答案 4 :(得分:0)
Map<Integer, List<String>> multimap = new HashMap<Integer, List<String>>();
然后
multimap.put(1, new ArrayList<String>(Arrays.asList("abc", "def", "ght")));
答案 5 :(得分:0)
Map<Integer, List<String>> singletonMap = Collections.singletonMap(Integer.valueOf(1), Arrays.asList("abc", "dd", "dde"));
答案 6 :(得分:0)
multimap.put(1,new ArrayList<String>(Arrays.asList("element","element")));