溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java怎么實(shí)現(xiàn)稀疏數(shù)組與二維數(shù)組轉(zhuǎn)換

發(fā)布時(shí)間:2022-03-22 15:23:53 來源:億速云 閱讀:98 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Java怎么實(shí)現(xiàn)稀疏數(shù)組與二維數(shù)組轉(zhuǎn)換”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java怎么實(shí)現(xiàn)稀疏數(shù)組與二維數(shù)組轉(zhuǎn)換”吧!

廢話少說,直接上代碼

package com.malajava.sparsearray;

public class SparseArray {

    public static void main(String[] args) {
        //創(chuàng)建一個(gè)11*11二維數(shù)組
        int array[][] = new int[11][11];
        array[1][2]=1;
        array[2][3]=2;
        System.out.println("------------------二維數(shù)組------------------");
        for (int[]row:array){
            for (int data: row){
                System.out.printf("%d\t",data);
            }
            System.out.println();
        }

        //二維數(shù)組轉(zhuǎn)稀疏數(shù)組
        //先遍歷二維數(shù)組,得到非零數(shù)據(jù)的個(gè)數(shù)
        int sum=0;
        for (int[]row:array){
            for (int data: row){
                if(data != 0)
                    sum++;
            }
        }
        System.out.println("----------------------------------------");
        System.out.println("非零個(gè)數(shù)為:"+sum);
        int sparseArray[][] = new int[sum+1][3];
       sparseArray[0][0] =11;
       sparseArray[0][1]=11;
       sparseArray[0][2]=sum;
       //遍歷二維數(shù)組將非零數(shù)字存入稀疏數(shù)組
        int count=0;        //用于記錄是第幾個(gè)非零數(shù)據(jù)
        for (int i=0;i<11;i++){
            for (int j = 0; j < 11; j++) {
                if(array[i][j] != 0){
                    count++;
                    sparseArray[count][0]=i;
                    sparseArray[count][1]=j;
                    sparseArray[count][2]=array[i][j];
                }
            }
        }

        System.out.println("------------稀疏數(shù)組-------------------------");
        //輸出稀疏數(shù)組
        for (int [] row:sparseArray) {
            for(int data:row){
                System.out.printf("%d\t",data);
            }
            System.out.println();
        }

        //稀疏數(shù)組轉(zhuǎn)二維數(shù)組
        System.out.println("----------------二維數(shù)組----------------------");
        int chessArray[][] =new int[sparseArray[0][0]][sparseArray[0][1]];

        for (int i=1;i<sum+1;i++){
            for (int j=1;j<3;j++){
                chessArray[sparseArray[i][0]][sparseArray[i][1]]=sparseArray[i][2];
            }
        }

        System.out.println("------------------稀疏數(shù)組恢復(fù)二維數(shù)組打印------------------");
        for (int[]row:chessArray){
            for (int data: row){
                System.out.printf("%d\t",data);
            }
            System.out.println();
        }
    }
}

運(yùn)行結(jié)果: Java怎么實(shí)現(xiàn)稀疏數(shù)組與二維數(shù)組轉(zhuǎn)換

感謝各位的閱讀,以上就是“Java怎么實(shí)現(xiàn)稀疏數(shù)組與二維數(shù)組轉(zhuǎn)換”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java怎么實(shí)現(xiàn)稀疏數(shù)組與二維數(shù)組轉(zhuǎn)換這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI