我正在使用此代码将转换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);
}
我想避免在循环的每次迭代中创建一个新列表。那可能吗?
您可以使用List.addAll()方法。它接受Collection作为参数,而您的集合就是Collection。
List<String> mainList = new ArrayList<String>();
mainList.addAll(set);
编辑: 作为对问题的编辑的回应。
很容易看出,如果要使用Map
带有List
s作为值,则要具有k个不同的值,则需要创建k个不同的列表。
因此:您完全无法避免创建这些列表,必须创建列表。
可能的解决方法:
声明您Map
为a Map<String,Set>
或Map<String,Collection>
代替,然后插入您的集合。
我正在寻找在Java-8中过滤列表的最干净的方法,用一个简单的lambda ,而不用创建一个新的列表。 特别是,这种解决方案不合适,因为返回一个新的: 注意,下面的解决方案也不起作用,因为列表应该< code>clear()其原始值(但是很明显,如果您在过滤之前清除它,就没有什么可过滤的了...): (此外,我更喜欢不使用第三方库或框架的解决方案)
问题内容: 将a 转换为同时保持Queue顺序的最快方法是什么? 问题答案: 最快的方法是首先使用LinkedList,它可用作列表或队列。 否则您需要复印 注意:处理PriorityQueue时,请使用循环,轮询每个元素并添加到列表中。要列出的PriorityQueue不维护堆顺序。
问题内容: 我已经编写了此函数,用于将元组列表转换为列表列表。有没有更优雅的/ Pythonic的方式来做到这一点? 问题答案: 您可以使用列表推导:
我有一个像这样的xsd- 当我使用XJC生成类绑定时,我看到教师是List类型的 如何生成字符串列表而不是对象?任何帮助都很感激。 更新:使用“vamsilp”提供的解决方案——在删除“教师”元素上的“minOccurs”后,它工作得很好!XSD是由泽西从以下代码自动生成的: 我不知道如何删除“minOccurs”属性。我是否需要修改代码以忽略它?
问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你:
我有一个lambda表达式,我想在其中创建一个对象列表,但我得到了错误 错误 我希望作为lambda表达式的返回类型。我怎样才能做到呢?