我必須將 ArrayList 的 ArrayList 轉換為 Array。List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>(centers.size());我知道可以將單個 ArrayList 轉換為 Array TockaXY[] arrayOfClusters = clustersPorazdeljeni.toArray(new TockaXY[centers.size()]);但這些不會轉換嵌套部分。據我了解,現在是 ArrayList 數組。那么是否可以從嵌套的 ArrayList 中獲取 Array?
3 回答

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
您可以使用平面地圖:
List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>(); TockaXY[] flattened = clustersPorazdeljeni.stream() .flatMap(x -> x.stream()) .toArray(x -> new TockaXY[0]);

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
可以使用 JavaStream
和Stream::flatMap
:
List<List<TockaXY>>?clustersPorazdeljeni?=?new?ArrayList<>(); TockaXY[]?strings?=?clustersPorazdeljeni.stream() ????.flatMap(Collection::stream) ????.toArray(TockaXY[]::new);

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
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);
添加回答
舉報
0/150
提交
取消