這篇文章主要介紹“java稀疏數(shù)組怎么定義和使用”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“java稀疏數(shù)組怎么定義和使用”文章能幫助大家解決問題。
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括龍南網(wǎng)站建設(shè)、龍南網(wǎng)站制作、龍南網(wǎng)頁制作以及龍南網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,龍南網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到龍南省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
特點(diǎn)
1、它可以壓縮數(shù)據(jù),減少內(nèi)存空間的使用。
過程
2、記錄數(shù)組元素的坐標(biāo)和值。
3、稀疏數(shù)組有3列,分別是行、列、值,行數(shù)是原數(shù)組不同值的數(shù)加1;
array[0]記錄一組行數(shù)和列數(shù),以及不同值的數(shù);
然后每行記錄一個(gè)值在原數(shù)組的行列下標(biāo)記和自己的值。
實(shí)例
public static void main(String[] args) { //創(chuàng)建一個(gè)原始的二維數(shù)組 //0:沒有棋子,1:黑子,2:白子 int chessArr1[][] = new int[11][11]; //下面先固定二維數(shù)組的元素,后面可優(yōu)化~ chessArr1[1][2] = 1; chessArr1[2][3] = 2; chessArr1[4][5] = 2; //輸出原始的二維數(shù)組: System.out.println("原始的二維數(shù)組:"); printArray(chessArr1); //下面將二維數(shù)組轉(zhuǎn)化為稀疏數(shù)組 //1.先遍歷二維數(shù)組,得到非0數(shù)據(jù)的個(gè)數(shù) int sum = 0; for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j] != 0) { sum++; } } } //2.創(chuàng)建對(duì)應(yīng)的稀疏數(shù)組 int sparesArr[][] = new int[sum + 1][3]; //給稀疏數(shù)組賦值 sparesArr[0][0] = 11; sparesArr[0][1] = 11; sparesArr[0][2] = sum; //遍歷二維數(shù)組,將非0的值存放在sparesArr中 int count = 0;//count 用于記錄是第幾個(gè)非0數(shù)據(jù) 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]; } } } //輸出稀疏數(shù)組的形式 System.out.println(); System.out.println("得到的稀疏數(shù)組為:"); printArray(sparesArr); System.out.println(); //下面將稀疏數(shù)組恢復(fù)成二維數(shù)組 //先讀取稀疏數(shù)組的第一行元素,根據(jù)其數(shù)據(jù),創(chuàng)建原始的二維數(shù)組 int chessArr2[][] = new int[sparesArr[0][0]][sparesArr[0][1]]; //讀取稀疏數(shù)組后幾行的元素(從第二行開始),并賦值給原始的二維數(shù)組即可 for (int i = 1; i < sparesArr.length; i++) { chessArr2[sparesArr[i][0]][sparesArr[i][1]] = sparesArr[i][2]; } //輸出恢復(fù)后的二維數(shù)組 System.out.println(); System.out.println("恢復(fù)后的二維數(shù)組"); printArray(chessArr2); } //打印數(shù)組 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("%d\t", array[i][j]); } System.out.println(); } }
關(guān)于“java稀疏數(shù)組怎么定義和使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
網(wǎng)站欄目:java稀疏數(shù)組怎么定義和使用
分享鏈接:http://jinyejixie.com/article14/ghphde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、用戶體驗(yàn)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)