Java二維數(shù)組講解
前言
一、二維數(shù)組的應(yīng)用場景
二、二維數(shù)組的初始化 1.靜態(tài)初始化
1.靜態(tài)初始化
簡化格式最好使用紅色框里面的,因?yàn)樵诎⒗锇桶蚃ava開發(fā)手冊中有這樣的規(guī)定:
public class TwoDimensionDemo1 { public static void main(String[] args) { //1.二維數(shù)組初始化 int[][] arr1=new int[][]{{1,2,3},{4,5,6,7,8}}; int[][] arr2={{1,2,3},{4,5,6,7,8}}; int[][] arr3={ {1,2,3}, {4,5,6,7,8} }; //以后建議像arr3這樣初始化,把每一個(gè)一維數(shù)組,單獨(dú)寫成一行 //注意:每一個(gè)一維數(shù)組其實(shí)是二維數(shù)組中的元素,所以每一個(gè)一維數(shù)組之間需要用逗號隔開,最后一個(gè)一維數(shù)組后面不需要 //2.獲取元素 //arr[i][j] //arr:二維數(shù)組 //i:二維數(shù)組的索引,獲取出來的是里面的一維數(shù)組 //j:表示一維數(shù)組中的索引,獲取出來是真正的元素 System.out.println(arr3[0]); //表示獲取二維數(shù)組中的第一個(gè)一維數(shù)組,得出的結(jié)果是二維數(shù)組中的第一個(gè)一維數(shù)組的地址 //arr3[0]:二維數(shù)組中的第一個(gè)一維數(shù)組 //arr3[0][0]:獲取第一個(gè)一維數(shù)組0索引的元素 System.out.println(arr3[0][0]); //打印數(shù)字8 System.out.println(arr3[1][4]); //arr3數(shù)組中沒有2索引,下面一行的代碼會報(bào)錯(cuò) // System.out.println(arr3[2][0]); //3.二維數(shù)組的遍歷 for (int i = 0; i < arr3.length; i++) { //i:表示二維數(shù)組中的每一個(gè)索引 //arr3[i]:表示二維數(shù)組中的每一個(gè)元素(一維數(shù)組) for (int j = 0; j < arr3[i].length; j++) { System.out.println(arr3[i][j]); } } //每個(gè)一維數(shù)組單獨(dú)打印在一行 //外循環(huán):遍歷二維數(shù)組,得到里面的每一個(gè)一維數(shù)組 //內(nèi)循環(huán):遍歷一維數(shù)組,得到里面的每一個(gè)元素 for (int i = 0; i < arr3.length; i++) { //i:表示二維數(shù)組中的每一個(gè)索引 //arr3[i]:表示二維數(shù)組中的每一個(gè)元素(一維數(shù)組) for (int j = 0; j < arr3[i].length; j++) { System.out.print(arr3[i][j]+" "); } System.out.println(); } } }
2.動(dòng)態(tài)初始化
public class TwoDimensionDemo2 { public static void main(String[] args) { //1.利用動(dòng)態(tài)初始化格式創(chuàng)建二維數(shù)組 int[][]arr1=new int[3][5]; //3:表示二維數(shù)組的長度為3,可以裝3個(gè)一維數(shù)組 //5:表示每一個(gè)一維數(shù)組的長度都是5,可以裝5個(gè)int類型的元素 //2.給二維數(shù)組賦值一個(gè)元素 arr1[0][0]=10; //3.遍歷二維數(shù)組 //外循環(huán):遍歷二維數(shù)組獲取里面的每一個(gè)一維數(shù)組 //內(nèi)循環(huán):遍歷一維數(shù)組獲取里面的每一個(gè)元素 for (int i = 0; i < arr1.length; i++) { for (int j = 0; j < arr1[i].length; j++) { System.out.print(arr1[i][j]+" "); } System.out.println(); } } }
三、二維數(shù)組的內(nèi)存圖
1.特殊情況1的寫法:
(知道就好,不需要重點(diǎn)掌握)
(上圖中的代碼int[ ][ ] arr=new int[2][ ];2表示二維數(shù)組長度為2,表示在堆內(nèi)存中只創(chuàng)建了一個(gè)二維數(shù)組,沒有創(chuàng)建一維數(shù)組)
則需要手動(dòng)創(chuàng)建一維數(shù)組:
再把一維數(shù)組的地址值添加給二維數(shù)組:
把a(bǔ)rr1賦值給arr的0索引
把a(bǔ)rr2賦值給arr的1索引
特殊情況1的寫法的好處:
自己創(chuàng)建一維數(shù)組,比較靈活,二維數(shù)組里面的每一個(gè)一維數(shù)組想創(chuàng)建多長就創(chuàng)建多長
如果是java創(chuàng)建一維數(shù)組,在初始化的時(shí)候創(chuàng)建的每一個(gè)一維數(shù)組的長度都是一樣的
2.特殊情況2的寫法
首先是按照標(biāo)準(zhǔn)的形式創(chuàng)建了一個(gè)二維數(shù)組
然后在下面又創(chuàng)建了兩個(gè)一維數(shù)組
并且進(jìn)行了添加
那么原來堆內(nèi)存中的右側(cè)的兩個(gè)數(shù)組的地址值被覆蓋了,它們沒人用了,從而變成垃圾,就會從堆內(nèi)存中消失
四、二維數(shù)組的練習(xí)題
public class TwoDimensionDemo3 { public static void main(String[] args) { //1.創(chuàng)建二維數(shù)組并存儲數(shù)據(jù) //已經(jīng)知道數(shù)據(jù)用靜態(tài)初始化 int[][] yearArrArr={ {22,66,44}, {77,33,88}, {25,45,65}, {11,66,99} }; //表示全年的營業(yè)額 int yearSum=0; //2.遍歷二維數(shù)組得到每一個(gè)一維數(shù)組并求和 for (int i = 0; i < yearArrArr.length; i++) { //i 二維數(shù)組中的每一個(gè)索引 //yearArrArr[i] 元素(一維數(shù)組) int[] quarterArr=yearArrArr[i]; int sum=getSum(quarterArr); System.out.println("第"+(i+1)+"個(gè)季度的總營業(yè)額為"+sum); yearSum=yearSum+sum; } System.out.println("全年的營業(yè)額為:"+yearSum); } //定義一個(gè)方法,計(jì)算每一個(gè)季度的營業(yè)額 public static int getSum(int[] arr){ int sum=0; for (int i = 0; i < arr.length; i++) { sum=sum+arr[i]; } return sum; } }
總結(jié)
今天的內(nèi)容你是否有所收獲呢友友們??如果有寫的不對的地方,歡迎大家?guī)臀抑刚?最后,希望友友們點(diǎn)贊收藏一下
以上就是Java二維數(shù)組講解的詳細(xì)內(nèi)容,更多關(guān)于Java二維數(shù)組的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java數(shù)據(jù)結(jié)構(gòu)之java實(shí)現(xiàn)棧
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧,需要的朋友可以參考下2014-03-03高并發(fā)下如何避免重復(fù)數(shù)據(jù)產(chǎn)生技巧
這篇文章主要為大家介紹了高并發(fā)下如何避免重復(fù)數(shù)據(jù)的產(chǎn)生技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07SpringBoot+vue+Axios實(shí)現(xiàn)Token令牌的詳細(xì)過程
Token是在服務(wù)端產(chǎn)生的,前端可以使用用戶名/密碼向服務(wù)端請求認(rèn)證(登錄),服務(wù)端認(rèn)證成功,服務(wù)端會返回?Token?給前端,Token可以使用自己的算法自定義,本文給大家介紹SpringBoot+vue+Axios實(shí)現(xiàn)Token令牌,感興趣的朋友一起看看吧2023-10-10springboot實(shí)現(xiàn)執(zhí)行sql語句打印到控制臺
這篇文章主要介紹了springboot實(shí)現(xiàn)執(zhí)行sql語句打印到控制臺的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06