如何将一维数组拆分为具有特定列大小的二维数组?

时间:2015-03-02 06:44:53

标签: java arrays

我有一个一维数组arr1D[i],我希望它转换为二维数组arr2D[i][j],其中2D数组中列的大小应为512,行大小可以是任何东西。例如,如果我有一个大小为arr1D[1024]的1D数组,则相应的2D数组应为arr2D[2][512]

3 个答案:

答案 0 :(得分:1)

两个for循环如何复制它们:

2darray[][];
size1d = 1024;
num_colums = 512;
num_rows = size1d/num_colums;
for(i = 0; i < num_rows; i++){
     for(j = 0; j < num_colums; j++){
          2darray[i][j] = 1darray[i*num_colums+j];
      }
 }

这只是伪代码,但通过一些调整它应该可以工作;希望它有所帮助: - )

答案 1 :(得分:1)

int len=arr1D.length();
if(len%512 !=0))
len= len/512 +1;
else
len=len/512;

int arr2D= new int[len][512];
int k=0;
for(int i=0; i<len-1; i++)
{

	for(int j=0; j<512; j++)
	{
		arr2D[i][j]=arr1D[k];
		k++;
                if (k==arr1D.length())
                     break;
	}	
}

答案 2 :(得分:0)

你可以通过

轻松创建它

yourtype arr2D[][] = new yourtype[arr1D.length/2][512] // yourtype :=[int,float,..]

现在一切都取决于你,你将如何在arr1d中复制arr2d的元素