如何转换Collection <collection <double>&gt;到列表<list <double>&gt;?

时间:2016-11-07 11:34:38

标签: java arraylist collections

我有以下字段

Collection<Collection<Double>> items

我希望将其转换为

List<List<Double>> itemsList

我知道我可以按CollectionList转换为list.addAll(collection),但如何转换Collection Collection

1 个答案:

答案 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));