我有以下字段
Collection<Collection<Double>> items
我希望将其转换为
List<List<Double>> itemsList
我知道我可以按Collection
将List
转换为list.addAll(collection)
,但如何转换Collection
Collection
?
答案 0 :(得分:10)
您可以使用Streams:
List<List<Double>> itemsList =
items.stream() // create a Stream<Collection<Double>>
.map(c->new ArrayList<Double>(c)) // map each Collection<Double> to List<Double>
.collect(Collectors.toList()); // collect to a List<List<Double>>
或使用方法引用而不是lambda表达式:
List<List<Double>> itemsList =
items.stream() // create a Stream<Collection<Double>>
.map(ArrayList::new) // map each Collection<Double> to List<Double>
.collect(Collectors.toList()); // collect to a List<List<Double>>
Java 7解决方案需要循环:
List<List<Double>> itemsList = new ArrayList<List<Double>>();
for (Collection<Double> col : items)
itemsList.add(new ArrayList<Double>(col));