[英]Initializing list within single line
我正在使用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);
在我確定密鑰的地方添加列表內容。 就像是
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");
您正在手工實現Guavas Multimap ,建議您看一下Guava解決方案。
Multimap<Integer, String> multimap = HashMultimap.create();
multimap.putAll(1, Lists.newArrayList("a", "b", "c"));
本文很好地解釋了Guava Multimap實現的一些優點。
當我們使用它時,番石榴還提供了一種在一行( 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.