我正在使用此代码将 Set
转换为 List
:
Map<String, List<String>> mainMap = new HashMap<>();
for (int i=0; i < something.size(); i++) {
Set<String> set = getSet(...); //returns different result each time
List<String> listOfNames = new ArrayList<>(set);
mainMap.put(differentKeyName, listOfNames);
}
我想避免在循环的每次迭代中创建一个新列表。那可能吗?
原文由 Muhammad Imran Tariq 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 List.addAll() 方法。它接受一个集合作为参数,而你的集合就是一个集合。
编辑: 作为对问题编辑的回应。
很容易看出,如果你想有一个
Map
和List
s 作为值,为了有 k 个不同的值,你需要创建 k 个不同的列表。因此:您根本无法避免创建这些列表,必须创建列表。
可能的解决方法:
将您的
Map
声明为Map<String,Set>
或Map<String,Collection>
,然后插入您的集合。