Je dois convertir une ArrayList de ArrayList en Array.
TockaXY[] arrayOfClusters = clustersPorazdeljeni.toArray(new TockaXY[centers.size()]);
Je sais qu'il est possible de convertir une seule ArrayList en Array comme
List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>(centers.size());
3 Réponses :
Vous pouvez utiliser flatMap:
List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>();
TockaXY[] flattened = clustersPorazdeljeni.stream()
.flatMap(x -> x.stream())
.toArray(x -> new TockaXY[0]);
Il est possible d'utiliser Java Stream et Stream :: flatMap :
List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>();
TockaXY[] strings = clustersPorazdeljeni.stream()
.flatMap(Collection::stream)
.toArray(TockaXY[]::new);
Il existe une alternative linéaire pour flatMap ():
TockaXY[] arrayOfClusters = clustersPorazdeljeni.stream().flatMap(Collection::stream).toArray(TockaXY[]::new);
Ou avec flatMap:
List<List<TockaXY>> clustersPorazdeljeni = new ArrayList<>();
List<TockaXY> flatArray = new ArrayList<>();
clustersPorazdeljeni.forEach(flatArray::addAll);
TockaXY[] arrayOfClusters = flatArray.toArray(new TockaXY[0]);
Veuillez lire: Pourquoi est-ce possible de… »une question mal formulée? . Pour répondre à votre question: oui, c'est possible.