<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
二維陣列本質上是以陣列作為陣列元素的陣列,即“陣列的陣列”,型別說明符 陣列名[常數表示式][常數表示式]。二維陣列又稱為矩陣,行列數相等的矩陣稱為方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素。
當一個陣列中大部分元素為0,或者為同一個值的陣列時,可以使用稀疏陣列來儲存該陣列。從而減少計算機不必要的記憶體開銷。
(1)陣列中第一行記錄原始陣列中一共有幾行幾列,有多少個不同的值。
(2)把具有不同值的元素的行列及值記錄在一個小規模的陣列中,從而縮小程式的規模。
稀疏陣列轉原始的二維陣列的思路:
寫一個二維陣列:
//1.建立一個二維陣列 int chessArr1[][]=new int[11][11]; //2.給二維陣列賦值 chessArr1[1][2]=1; chessArr1[2][3]=2; //3.雙重for迴圈輸出二維陣列 System.out.println("原始的二維陣列:"); for (int[] row : chessArr1) { for (int data : row) { System.out.printf("%dt",data); } //每輸出完一個一重陣列換一行 System.out.println(); }
將二維陣列換換位稀疏陣列
//將二維陣列轉稀疏陣列 //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++; } } } 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; //4.遍歷二維陣列,給稀疏陣列 int count=0;//用於記錄是第幾行 for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j]!=0){ sparseArr[count+1][0]=i; sparseArr[count+1][1]=j; sparseArr[count+1][2]=chessArr1[i][j]; count++; } } } //5.輸出稀疏陣列 //以下是兩種遍歷方式: /*for (int[] ints : sparseArr) { for (int anInt : ints) { System.out.printf("%dt",anInt); } //把一個陣列遍歷完之後換一行 System.out.println(); }*/ System.out.println("得到稀疏陣列為~~~~~"); for (int i = 0; i < sparseArr.length; i++) { System.out.printf("%dt%dt%dtn",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]); }
將稀疏陣列還原為二維陣列
//把稀疏陣列還原為二維陣列 //1.建立二維陣列 int chessArr2[][]=new int[sparseArr[0][0]][sparseArr[0][1]]; //2.給二維陣列賦值 for (int i = 1; i < sparseArr.length; i++) { chessArr2[sparseArr[i][0]][sparseArr[i][1]]=sparseArr[i][2]; } //3.輸出二維陣列 for (int[] row : chessArr2) { for (int data : row) { System.out.printf("%dt",data); } System.out.println(); }
樹越是嚮往高處的光亮,它的根就越要向下,向泥土向黑暗的深處。
到此這篇關於Java 輕鬆實現二維陣列與稀疏陣列互轉的文章就介紹到這了,更多相關Java 陣列轉換內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45