为了账号安全,请及时绑定邮箱和手机立即绑定

如何转换Array中嵌套的ArrayList?

如何转换Array中嵌套的ArrayList?

呼如林 2023-07-13 18:11:05
我必须将 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]);


查看完整回答
反对 回复 2023-07-13
?
茅侃侃

TA贡献1842条经验 获得超21个赞

可以使用 JavaStreamStream::flatMap

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

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


查看完整回答
反对 回复 2023-07-13
?
慕妹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);



查看完整回答
反对 回复 2023-07-13
  • 3 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信