91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何實現二維數組和稀疏數組之間的轉換

發布時間:2021-06-28 10:44:13 來源:億速云 閱讀:174 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Java如何實現二維數組和稀疏數組之間的轉換的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1. 需求和思路分析

1.1 以二維數組的格式模擬棋盤、地圖等類似的二維結構為基礎,與稀疏數組之間進行轉化。

Java如何實現二維數組和稀疏數組之間的轉換

1.2 思路分析

二維數組轉化為稀疏數組

  • 遍歷原始的二維數組,得到有效數據個數 sum

  • 根據sum就可以創建稀疏數組sparseArr int[sunm+1][3]

  • 將二維數組的有效數據存入到稀疏數組

稀疏數組轉為二維數組

  • 先讀取稀疏數組的第一行,根據第一行的數據,創建原始的二維數組

  • 再讀取稀疏數組后幾行的數據,并賦給原始的二維數組即可。

2.代碼實現和展示

2.1 二維數組與稀疏數組之間的轉化程序

public class SparseArr {

    public static void main(String[] args) {
        // 創建一個原始的二維數組 11 * 11
        // 0: 沒有棋子;1:黑棋;2:白棋
        int[][] chessArr = new int[11][11];
        chessArr[1][2] = 1;
        chessArr[2][3] = 2;
        chessArr[2][6] = 1;

        // 打印輸出原始二維數組
        System.out.print("原始二維數組為:\n");
        for(int[] a : chessArr ){
            for (int item : a ){
                System.out.printf( "%d\t", item );
            }
            System.out.println();

        }

        //將二維數組轉換為稀疏數組思路
        // 1、遍歷二維數組,統計有效數據的個數sum
        int sum = 0;
        for(int i=0;i < chessArr.length;i++){
            for(int j=0;j < chessArr[0].length;j++){
                if(chessArr[i][j] != 0){
                    sum++;
                }
            }
        }
        System.out.println("有效數據的個數為:" + sum);

        //2、建立稀疏數組,行列值
        int[][] sparseArr = new int[sum+1][3];

        //3、遍歷原始二維數組轉換為稀疏數組中的數據
        sparseArr[0][0] = 11;
        sparseArr[0][1] = 11;
        sparseArr[0][2] = sum;

        int count=1;
        for(int i=0;i < 11;i++){
            for(int j=0;j < 11;j++){
                if(chessArr[i][j] != 0){
                    sparseArr[count][0] = i;
                    sparseArr[count][1] = j;
                    sparseArr[count][2] = chessArr[i][j];
                    count++;
                }
            }
        }

        //4 輸出稀疏數組
        System.out.println("稀疏數組為:");
        for (int[] row : sparseArr) {
        //     for (int data : row) {
        //         System.out.printf( "%d\t",data);  
        //     }
        //     System.out.println();  
        // }
    
            System.out.printf("%d\t%d\t%d\t\n", row[0],row[1],row[2]);
        }

        // 將稀疏數組轉化為二維數組
        // 1.讀取稀疏數組首行數據,建立二維數組
        int[][] chessArr2 = new  int[sparseArr[0][0]][sparseArr[0][1]];

        // 2. 遍歷稀疏數組,賦值給二維數組
        for (int i=1;i < sparseArr.length;i++) {
            chessArr2[sparseArr[1][0]][sparseArr[1][1]] = sparseArr[i][2];
        }
        
        // 3. 打印輸出原始的二維數組
        System.out.print("原始二維數組為:\n");
        for (int[] row : chessArr2) {
            for (int data : row) {
                System.out.printf("%d\t", data); 
            }
            System.out.println();
        }
    } 
}

2.2 二維數組轉化為稀疏數組展示

原始二維數組為:
0       0       0       0       0       0       0       0       0       0       0
0       0       1       0       0       0       0       0       0       0       0
0       0       0       2       0       0       1       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
有效數據的個數為:3
稀疏數組為:
11      11      3
1       2       1
2       3       2
2       6       1
原始二維數組為:
0       0       0       0       0       0       0       0       0       0       0
0       0       1       0       0       0       0       0       0       0       0
0       0       0       2       0       0       1       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0

3. 總結

用Java語言實現二者之間的轉化,思路很重要,按著思路寫代碼就會很省事,難的點可能是不知道如何寫代碼。
注意:printf 和 print 輸出的格式不同。

感謝各位的閱讀!關于“Java如何實現二維數組和稀疏數組之間的轉換”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民县| 池州市| 大理市| 桂平市| 蓝田县| 陕西省| 夹江县| 方城县| 济宁市| 双桥区| 隆林| 汝城县| 芦溪县| 博客| 当雄县| 蒙自县| 长乐市| 托里县| 福鼎市| 宜川县| 海宁市| 滕州市| 龙山县| 昭通市| 呈贡县| 出国| 农安县| 界首市| 翁源县| 崇义县| 庐江县| 长岛县| 和林格尔县| 磐安县| 陵水| 洪雅县| 康平县| 墨玉县| 尉氏县| 石景山区| 华池县|