2009-11-11 28 views
0

嘿,我試圖將幾個double類型的數組合併成一個數組,最好的方法是什麼?謝謝!將幾個數組合併成一個單一數組的最佳方式是什麼

+0

最可維護還是最有效? – Xailor 2009-11-11 15:58:17

+0

想要最有效的方法 – flyingfromchina 2009-11-11 16:04:25

+0

重複的:http://stackoverflow.com/questions/663632/converting-a-bidimensional-array-numbers-into-a-dimensional-array-and-viceversa – 2009-11-11 16:05:56

回答

4
  • 創建大小合適的陣列(由經歷和求和所有的源陣列的長度)
  • 反覆調用System.arraycopy一個源陣列一次複製到目標陣列,更新的地方你在每一次迭代中複製它。

因此,像:

public static double[] Combine(double[][] arrays) 
{ 
    int totalLength = 0; 
    for (double[] source : arrays) 
    { 
     totalLength += source.length; 
    } 
    double[] ret = new double[totalLength]; 
    int index = 0; 
    for (double[] source : arrays) 
    { 
     System.arraycopy(source, 0, ret, index, source.length); 
     index += source.length; 
    } 
    return ret; 
} 
+1

我聞到整數溢出! – erickson 2009-11-11 15:59:28

+1

只有大約16 GB的數據纔會發生溢出嗎? – JRL 2009-11-11 16:08:45

+0

永遠不要低估您對輸入的限制:http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html – 2009-11-11 16:16:45

1

您可以使用從番石榴庫,它是開源的這種方法,將有可能在本月晚些時候的實際二進制版本: Doubles.concat(double[]...)

相關問題