拆分数组并创建动态系列?

时间:2016-12-23 19:11:35

标签: java arrays javafx plot

我用javafx绘制了一系列系列。我的问题是我必须在X组中分割一组元素(例如50),并且对于这些组中的每一组都应创建要在一个ScatterChart上绘制的系列。如何将阵列拆分成小编? 因此,如果我以动态方式创建序列号,那么数组大小是可变的,该怎么办?下面放置我的代码的一部分:

try {
      extractedData = SpectrumExtractor.extractionSpectrum(file);
      XYChart.Series<Number,Number> series = new XYChart.Series<Number,Number>();
      List<ArrayList<Double>> extractedDataList = Arrays.asList(extractedData);
      List<List<Double>>partitions = ListUtils.partition(extractedData,512);
      for (List<Double> partition : partitions) {
        for(int i =0; i<partition.size(); i++){
         series.getData().add(new XYChart.Data<Number, Number>(i, partition.get(i)));
        }
    }   
     ChartSpectrum.getData().addAll(series);

...

我已拆分数组,现在如何动态创建更多系列来打印几行Linechart?我想获得一个类似于图像中的图形( 现在我只能得到一个系列,因此只有一行):

LineChart

1 个答案:

答案 0 :(得分:1)

您可以使用提供Apache Commons CollectionsListUtils.partition(List< T >, int),如下所示:

// assuming extractedData is of type Number[]:
List<Number> extractedDataList = Arrays.asList(extractedData);
// the last partition might have less than 50 elements
List<List<Number>> partitions = ListUtils.partition(extractedDataList, 50);

for (List<Number> partition : partitions) {
    // your code here
}