Rumah  >  Artikel  >  Java  >  Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D di Jawa

Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D di Jawa

PHPz
PHPzke hadapan
2023-04-26 12:40:082244semak imbas

Tukar tatasusunan dua dimensi kepada tatasusunan satu dimensi

1 Untuk menjadi malas, saya menulis fungsi yang menjana tatasusunan dua dimensi secara rawak

 /*
    * 自动创建随机为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. Takrifkan tatasusunan binari 5x8 fungsi Dimensi

 public static void main(String[] args) {
        createdarray ca=new createdarray();
        int nums[][]=CreatedDemArray(5,8);
    }

3 Tentukan tatasusunan int dengan panjang 40, dan gunakan System.arraycopy untuk mengisi tatasusunan dua dimensi ke dalam temp tatasusunan satu dimensi

  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 . Jika saya ingin melakukan sesuatu selepas mengisi tatasusunan satu dimensi, isikan tatasusunan satu dimensi dan isi semula ke dalam tatasusunan dua dimensi

   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 pencetakan tatasusunan dua dimensi yang digunakan di atas

    /*
    * 输出二维数组 
    * 这里我不知道怎么写我还去问了我前任:) 因为我实在不知怎么传这个参
    * 如果要做成通用的比如说既能打印整数类型又能打印字符串类型的二维数组需要用的泛型... 
    * 毕业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();
                }
 
            }
        }
    }

Hari ini juga merupakan hari untuk ujian

Tukar tatasusunan satu dimensi kepada tatasusunan dua dimensi

Memandangkan matriks sering digunakan untuk pengiraan, tatasusunan satu dimensi akan ditukar dahulu Tukar tatasusunan kepada tatasusunan dua dimensi. Oleh itu, saya merakamkannya di sini dan berharap ia dapat membantu orang lain.

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;
    }
}

Keputusan menjalankan program.

Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D di Jawa

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam