[英]Initializing list within single line
I am using multimap as shown below but as shown but the issue with this that first i am adding the contents in listand then associating it with the key, can I do it in a single line itself. 我正在使用multimap,如下所示,但如下所示,但与此相关的问题是,我首先将内容添加到列表中,然后将其与键相关联,我可以自己在一行中完成它。
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);
that is adding list contents where I am eneterting the key. 在我确定密钥的地方添加列表内容。 something like 就像是
multimap.put(1, // adding the list in a single line here itslef );
它不是很漂亮,但是您可以按照以下方式进行操作
multimap.put(1, new ArrayList<String>(Arrays.asList("abc", "def", "ght")));
尝试以下代码:
multimap.put(1, Arrays.asList(new String[]{"abc","def","ght"}));
你可以用
List<String> someList = Arrays.asList("abc", "def", "ght");
You are implementing Guavas Multimap by hand, I recommend you to look at the Guava solution. 您正在手工实现Guavas Multimap ,建议您看一下Guava解决方案。
Multimap<Integer, String> multimap = HashMultimap.create();
multimap.putAll(1, Lists.newArrayList("a", "b", "c"));
This article nicely explains some of the advantages of the Guava Multimap implementation. 本文很好地解释了Guava Multimap实现的一些优点。
While we're at it, guava also provides a solution to initialize lists on one line ( javadoc ): 当我们使用它时,番石榴还提供了一种在一行( javadoc )上初始化列表的解决方案:
Lists.newArrayList("a", "b", "c");
Map<Integer, List<String>> multimap = new HashMap<Integer, List<String>>();
然后
multimap.put(1, new ArrayList<String>(Arrays.asList("abc", "def", "ght")));
Map<Integer, List<String>> singletonMap = Collections.singletonMap(Integer.valueOf(1), Arrays.asList("abc", "dd", "dde"));
multimap.put(1,new ArrayList<String>(Arrays.asList("element","element")));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.