将设置转换为列表而不创建新列表

问题:

我正在使用此代码将Set转换为List

Map<String, List> mainMap = new HashMap<String, List>();

for(int i=0; i<something.size(); i++){
  Set set = getSet(...); //return different result each time
  List listOfNames = new ArrayList(set);
  mainMap.put(differentKeyName,listOfNames);
}
&#91;/code&#93;
我想避免在循环的每个迭代中创建一个新的列表。那可能吗?

<h4>回答:</h4>
您可以使用<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html#addAll%28java.util.Collection%29" rel="noreferrer">List.addAll()</a>方法。它接受一个集合作为参数,你的集合是一个集合。

mainList.addAll(set);

 编辑:回应编辑问题。
 
很容易看出,如果你想拥有List作为值的Map,为了具有不同的值,你需要创建不同的k个列表。
 
因此:您无法避免创建这些列表,列表将必须创建。
可能的工作:
 
代替Map<String,Set>Map<String,Collection>声明您的Map,然后插入您的集合。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Convert Set to List without creating new List

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 2