Rumah > Java > javaTutorial > teks badan

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

PHPz
Lepaskan: 2023-04-26 12:40:08
ke hadapan
2291 orang telah melayarinya

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;
    }
Salin selepas log masuk

2. Takrifkan tatasusunan binari 5x8 fungsi Dimensi

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

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);
        }
 
    }
Salin selepas log masuk

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);
    }
Salin selepas log masuk

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();
                }
 
            }
        }
    }
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan