我需要在Java中儘可能快地將long []轉換爲long [] []。 long []可能不完全對應於long [],在這種情況下,我將空行添加到long []。在Java中快速從一維數組向二維轉換
當前的代碼看起來是這樣的:
private long[][] convertOneDimensionalToTwoDimensional(int numberOfRows, int rowSize, long[] srcMatrix) {
int srcMatrixLength = srcMatrix.length;
int srcPosition = 0;
long[][] returnMatrix = new long[numberOfRows][];
for (int i = 0; i < numberOfRows; i++) {
long[] row = new long[rowSize];
int nextSrcPosition = srcPosition + rowSize;
if (srcMatrixLength >= nextSrcPosition) {
// Copy the data from the file if it has been written before. Otherwise we just keep row empty.
System.arraycopy(srcMatrix, srcPosition, row, 0, rowSize);
}
returnMatrix[i] = row;
srcPosition = nextSrcPosition;
}
return returnMatrix;
}
如何使這個更高效的任何想法?例如,有沒有辦法避免內存拷貝?
「有什麼方法可以避免內存拷貝」。編號 – Thilo 2011-12-25 10:28:34