java稀疏陣列是什麼
特點
1、它可以壓縮資料,減少記憶體空間的使用。
過程
2、記錄陣列元素的座標和值。
3、稀疏陣列有3列,分別是行、列、值,行數是原陣列不同值的數加1;
array[0]記錄一組行數和列數,以及不同值的數;
然後每行記錄一個值在原陣列的行列下標記和自己的值。
例項
public static void main(String[] args) { //建立一個原始的二維陣列 //0:沒有棋子,1:黑子,2:白子 int chessArr1[][] = new int[11][11]; //下面先固定二維陣列的元素,後面可最佳化~ chessArr1[1][2] = 1; chessArr1[2][3] = 2; chessArr1[4][5] = 2; //輸出原始的二維陣列: System.out.println("原始的二維陣列:"); printArray(chessArr1); //下面將二維陣列轉化為稀疏陣列 //1.先遍歷二維陣列,得到非0資料的個數 int sum = 0; for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j] != 0) { sum++; } } } //2.建立對應的稀疏陣列 int sparesArr[][] = new int[sum + 1][3]; //給稀疏陣列賦值 sparesArr[0][0] = 11; sparesArr[0][1] = 11; sparesArr[0][2] = sum; //遍歷二維陣列,將非0的值存放在sparesArr中 int count = 0;//count 用於記錄是第幾個非0資料 for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j] != 0) { count++; sparesArr[count][0] = i; sparesArr[count][1] = j; sparesArr[count][2] = chessArr1[i][j]; } } } //輸出稀疏陣列的形式 System.out.println(); System.out.println("得到的稀疏陣列為:"); printArray(sparesArr); System.out.println(); //下面將稀疏陣列恢復成二維陣列 //先讀取稀疏陣列的第一行元素,根據其資料,建立原始的二維陣列 int chessArr2[][] = new int[sparesArr[0][0]][sparesArr[0][1]]; //讀取稀疏陣列後幾行的元素(從第二行開始),並賦值給原始的二維陣列即可 for (int i = 1; i < sparesArr.length; i++) { chessArr2[sparesArr[i][0]][sparesArr[i][1]] = sparesArr[i][2]; } //輸出恢復後的二維陣列 System.out.println(); System.out.println("恢復後的二維陣列"); printArray(chessArr2); } //列印陣列 public static void printArray(int[][] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[0].length; j++) { System.out.printf("%dt", array[i][j]); } System.out.println(); } }
以上就是java稀疏陣列的介紹,希望對大家有所幫助。更多Java學習指路:
本教程操作環境:windows7系統、java10版,DELL G3電腦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1343/viewspace-2829851/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 稀疏陣列陣列
- 稀疏陣列、佇列陣列佇列
- 20_稀疏陣列陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- (一)Java資料結構之稀疏陣列Java資料結構陣列
- 二維陣列和稀疏陣列互轉陣列
- golang實現稀疏陣列Golang陣列
- Java實現普通二維陣列和稀疏陣列的相互轉換Java陣列
- C語言中陣列溢位是什麼C語言陣列
- 稀疏陣列、佇列的概念與實踐陣列佇列
- 稀疏陣列真心話大冒險陣列
- 電子表格實戰錦囊:巧用稀疏陣列是關鍵!陣列
- 圖解:什麼是旋轉陣列(Rotate Array)?圖解陣列
- php陣列中二分查詢是什麼PHP陣列
- 為什麼陣列下標是從0開始?陣列
- Java是什麼_Java是做什麼的?Java
- 【小白學演算法】2. 稀疏陣列演算法陣列
- 稀疏矩陣矩陣
- 用三列二維陣列表示的稀疏矩陣類陣列矩陣
- 【資料結構與演算法】——稀疏陣列資料結構演算法陣列
- 資料結構與演算法—稀疏陣列和佇列資料結構演算法陣列佇列
- Shell陣列是什麼?Linux運維技術學習陣列Linux運維
- 為什麼處理排序陣列比未排序陣列快排序陣列
- 為什麼處理有序陣列比無序陣列快?陣列
- 資料結構與演算法:稀疏陣列(一)資料結構演算法陣列
- 資料結構與演算法之稀疏陣列資料結構演算法陣列
- Java陣列03:陣列使用Java陣列
- 分支預測:為什麼有序陣列比無序陣列快?陣列
- 稀疏矩陣轉置矩陣
- Java是什麼? Java適用於什麼工作?Java
- 什麼是java常量?Java
- 什麼是java常量Java
- java 中/**是什麼Java
- 什麼是JAVA ? (轉)Java
- Java是什麼 (轉)Java
- Java 陣列Java陣列
- java——陣列Java陣列
- Java陣列Java陣列