我必须将ArrayList的ArrayList转换为Array。

List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>(centers.size());


我知道可以将单个ArrayList转换为Array这样

 TockaXY[] arrayOfClusters = clustersPorazdeljeni.toArray(new TockaXY[centers.size()]);


但是这些不会转换嵌套部分。据我了解,现在是ArrayLists的数组。那么有可能从嵌套的ArrayList中获取一个Array吗?

最佳答案

flatMap()有线性替代方案:

    List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>();

    List<TockaXY> flatArray = new ArrayList<>();
    clustersPorazdeljeni.forEach(flatArray::addAll);
    TockaXY[] arrayOfClusters = flatArray.toArray(new TockaXY[0]);


或使用flatMap:

TockaXY[] arrayOfClusters = clustersPorazdeljeni.stream().flatMap(Collection::stream).toArray(TockaXY[]::new);

09-11 02:19
查看更多