您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java怎么實現稀疏數組與二維數組轉換”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java怎么實現稀疏數組與二維數組轉換”吧!
廢話少說,直接上代碼
package com.malajava.sparsearray; public class SparseArray { public static void main(String[] args) { //創建一個11*11二維數組 int array[][] = new int[11][11]; array[1][2]=1; array[2][3]=2; System.out.println("------------------二維數組------------------"); for (int[]row:array){ for (int data: row){ System.out.printf("%d\t",data); } System.out.println(); } //二維數組轉稀疏數組 //先遍歷二維數組,得到非零數據的個數 int sum=0; for (int[]row:array){ for (int data: row){ if(data != 0) sum++; } } System.out.println("----------------------------------------"); System.out.println("非零個數為:"+sum); int sparseArray[][] = new int[sum+1][3]; sparseArray[0][0] =11; sparseArray[0][1]=11; sparseArray[0][2]=sum; //遍歷二維數組將非零數字存入稀疏數組 int count=0; //用于記錄是第幾個非零數據 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("------------稀疏數組-------------------------"); //輸出稀疏數組 for (int [] row:sparseArray) { for(int data:row){ System.out.printf("%d\t",data); } System.out.println(); } //稀疏數組轉二維數組 System.out.println("----------------二維數組----------------------"); 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("------------------稀疏數組恢復二維數組打印------------------"); for (int[]row:chessArray){ for (int data: row){ System.out.printf("%d\t",data); } System.out.println(); } } }
運行結果:
感謝各位的閱讀,以上就是“Java怎么實現稀疏數組與二維數組轉換”的內容了,經過本文的學習后,相信大家對Java怎么實現稀疏數組與二維數組轉換這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。