将二维数组转换成一维数组
先用Arrays.copyOfRange将二维数组中每一行保存到一个临时的一维数组里,再将这些一维数组用System.arraycopy拼成一个大一维数组
public int[] doubleToOne(int[][] array) {
int newArrayLength = array.length * array[0].length;
int[] newArray = new int[newArrayLength];
int index = 0;
for(int[] row : array) {
int[] rowCopy = Arrays.copyOfRange(row, 0, row.length);
System.arraycopy(rowCopy, 0, newArray, index, rowCopy.length);
index += rowCopy.length;
}
return newArray;
}
将一维数组转换成二维数组
利用System.arraycopy从一维数组copy对应长度的到二维数组里每一行
public void oneToDouble(int[] srcArray, int[][] desArray) {
int index = 0;
for(int[] row : desArray) {
System.arraycopy(srcArray, index, row, 0, row.length);
index += row.length;
}
return;
}