猿问

如何转换Array中嵌套的ArrayList?

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

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

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

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

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


呼如林
浏览 102回答 3
3回答

德玛西亚99

您可以使用平面地图:List<List<TockaXY>>&nbsp;clustersPorazdeljeni&nbsp;=&nbsp;new&nbsp;ArrayList<>(); TockaXY[]&nbsp;flattened&nbsp;=&nbsp;clustersPorazdeljeni.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.flatMap(x&nbsp;->&nbsp;x.stream()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toArray(x&nbsp;->&nbsp;new&nbsp;TockaXY[0]);

茅侃侃

可以使用 JavaStream和Stream::flatMap:List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>(); TockaXY[] strings = clustersPorazdeljeni.stream()     .flatMap(Collection::stream)     .toArray(TockaXY[]::new);

慕妹3242003

flatMap() 有一个线性替代方案:&nbsp; &nbsp; List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>();&nbsp; &nbsp; List<TockaXY> flatArray = new ArrayList<>();&nbsp; &nbsp; clustersPorazdeljeni.forEach(flatArray::addAll);&nbsp; &nbsp; TockaXY[] arrayOfClusters = flatArray.toArray(new TockaXY[0]);或者使用 flatMap:TockaXY[] arrayOfClusters = clustersPorazdeljeni.stream().flatMap(Collection::stream).toArray(TockaXY[]::new);
随时随地看视频慕课网APP

相关分类

Java
我要回答