繁体   English   中英

如何在数组中转换嵌套的 ArrayList?

[英]How to convert nested ArrayList in Array?

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

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

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

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

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

您可以使用flatMap:

List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>();
TockaXY[] flattened = clustersPorazdeljeni.stream()
        .flatMap(x -> x.stream())
        .toArray(x -> new TockaXY[0]);

可以使用Java StreamStream::flatMap

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

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

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);
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(4);
list.add(5);
Object[] array = list.toArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM