1. 為了偷懶所以我寫了一個隨機生成二維數組的函數
/* * 自动创建随机为100以内的二维数组: int nums[x][y] * */ public static int[][] CreatedDemArray(int x,int y){ int nums[][]=new int[x][y]; for(int i=0;i<nums.length;i++){ for(int j=0;j<nums[i].length;j++){ nums[i][j]=(int)(Math.random()*100); } } return nums; }
2. 定義一個5x8的二維函數
public static void main(String[] args) { createdarray ca=new createdarray(); int nums[][]=CreatedDemArray(5,8); }
3. 定義一個長度為40 的int 數組,並使用System.arraycopy的方式將二維數組填入一維數組temp中
public static void main(String[] args) { createdarray ca=new createdarray(); int nums[][]=CreatedDemArray(5,8); //定义整数数组 int[] temp=new int[40]; //通过 arraycopy方法来将二维数组填充到一维数组temp中 for(int i=0;i<nums.length;i++){ System.arraycopy(nums[i],0,temp,i*8,8); } }
4. 如果填入一維數組之後我想搞點事,把一維數組進行排序後,回填到二維數組中
public static void main(String[] args) { createdarray ca=new createdarray(); int nums[][]=CreatedDemArray(5,8); int[] temp=new int[40]; for(int i=0;i<nums.length;i++){ System.arraycopy(nums[i],0,temp,i*8,8); } // 对一维数组进行排序 Arrays.sort(temp); // 将排序后的数组进行回填 int index=0; while (index<temp.length){ for(int i=0;i<nums.length;i++){ for(int j=0;j<nums[i].length;j++){ nums[i][j]=temp[index++]; } } } System.out.println("排序后的数组如下"); // 这里因为懒所以我自定义了一个函数 打印二维数组 ShowDemArray(nums); }
5. 補充一下上面用到的打印二維數組
/* * 输出二维数组 * 这里我不知道怎么写我还去问了我前任:) 因为我实在不知怎么传这个参 * 如果要做成通用的比如说既能打印整数类型又能打印字符串类型的二维数组需要用的泛型... * 毕业2年我已经忘了泛型怎么用,下次再补补 */ public static void ShowDemArray(int[][] nums){ for (int i=0;i<nums.length;i++){ for (int j=0;j<nums[i].length;j++){ System.out.print(nums[i][j]+"\t"); if((j+1)%nums[i].length==0){ System.out.println(); } } } }
今天也是想當測開的一天
由於經常在使用矩陣進行計算時,會先將一維數組轉為二維數組。因此,在這裡記錄一下,也希望對他人有幫助。
package deal; /* * author:合肥工业大学 管院学院 钱洋 *1563178220@qq.com */ public class ArryTest { public static void main(String[] args) { //创建一个一维数组 0,1,2,3...,10 double [] c= new double[10]; for (int i = 0; i < c.length; i++) { c[i]=i; } double[][] testArr=TwoArry(c); for (int i = 0; i < testArr.length; i++) { for (int j = 0; j < testArr[i].length; j++) { System.out.println(testArr[i][j]); } } } //一维数组转化为二维数组 public static double[][] TwoArry(double[] onedouble){ double[][] arr=new double[1][onedouble.length]; for (int i = 0; i < onedouble.length; i++) { arr[0][i]=onedouble[i]; } return arr; } }
程式運行結果。
以上是如何在Java中將二維數組轉換為一維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!