Java二維數(shù)組講解
前言
一、二維數(shù)組的應(yīng)用場(chǎng)景



二、二維數(shù)組的初始化 1.靜態(tài)初始化
1.靜態(tài)初始化

簡(jiǎn)化格式最好使用紅色框里面的,因?yàn)樵诎⒗锇桶蚃ava開(kāi)發(fā)手冊(cè)中有這樣的規(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ú)寫(xiě)成一行
//注意:每一個(gè)一維數(shù)組其實(shí)是二維數(shù)組中的元素,所以每一個(gè)一維數(shù)組之間需要用逗號(hào)隔開(kāi),最后一個(gè)一維數(shù)組后面不需要
//2.獲取元素
//arr[i][j]
//arr:二維數(shù)組
//i:二維數(shù)組的索引,獲取出來(lái)的是里面的一維數(shù)組
//j:表示一維數(shù)組中的索引,獲取出來(lái)是真正的元素
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ù)組中沒(méi)有2索引,下面一行的代碼會(huì)報(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ù)組的長(zhǎng)度為3,可以裝3個(gè)一維數(shù)組
//5:表示每一個(gè)一維數(shù)組的長(zhǎng)度都是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的寫(xiě)法:
(知道就好,不需要重點(diǎn)掌握)

(上圖中的代碼int[ ][ ] arr=new int[2][ ];2表示二維數(shù)組長(zhǎng)度為2,表示在堆內(nèi)存中只創(chuàng)建了一個(gè)二維數(shù)組,沒(méi)有創(chuàng)建一維數(shù)組)
則需要手動(dòng)創(chuàng)建一維數(shù)組:

再把一維數(shù)組的地址值添加給二維數(shù)組:
把a(bǔ)rr1賦值給arr的0索引
把a(bǔ)rr2賦值給arr的1索引

特殊情況1的寫(xiě)法的好處:
自己創(chuàng)建一維數(shù)組,比較靈活,二維數(shù)組里面的每一個(gè)一維數(shù)組想創(chuàng)建多長(zhǎng)就創(chuàng)建多長(zhǎng)
如果是java創(chuàng)建一維數(shù)組,在初始化的時(shí)候創(chuàng)建的每一個(gè)一維數(shù)組的長(zhǎng)度都是一樣的
2.特殊情況2的寫(xiě)法
首先是按照標(biāo)準(zhǔn)的形式創(chuàng)建了一個(gè)二維數(shù)組
然后在下面又創(chuàng)建了兩個(gè)一維數(shù)組
并且進(jìn)行了添加



那么原來(lái)堆內(nèi)存中的右側(cè)的兩個(gè)數(shù)組的地址值被覆蓋了,它們沒(méi)人用了,從而變成垃圾,就會(huì)從堆內(nèi)存中消失

四、二維數(shù)組的練習(xí)題

public class TwoDimensionDemo3 {
public static void main(String[] args) {
//1.創(chuàng)建二維數(shù)組并存儲(chǔ)數(shù)據(jù)
//已經(jīng)知道數(shù)據(jù)用靜態(tài)初始化
int[][] yearArrArr={
{22,66,44},
{77,33,88},
{25,45,65},
{11,66,99}
};
//表示全年的營(yíng)業(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íng)業(yè)額為"+sum);
yearSum=yearSum+sum;
}
System.out.println("全年的營(yíng)業(yè)額為:"+yearSum);
}
//定義一個(gè)方法,計(jì)算每一個(gè)季度的營(yíng)業(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)容你是否有所收獲呢友友們??如果有寫(xiě)的不對(duì)的地方,歡迎大家?guī)臀抑刚?最后,希望友友們點(diǎn)贊收藏一下
以上就是Java二維數(shù)組講解的詳細(xì)內(nèi)容,更多關(guān)于Java二維數(shù)組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot 使用@WebMvcTest測(cè)試MVC Web Controller
這篇文章主要介紹了SpringBoot 使用@WebMvcTest測(cè)試MVC Web Controller,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
解決SpringSecurity 一直登錄失敗的問(wèn)題
這篇文章主要介紹了解決SpringSecurity 一直登錄失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringData JPA實(shí)體映射與關(guān)系映射的實(shí)現(xiàn)
Spring Data JPA作為Spring生態(tài)系統(tǒng)中的核心項(xiàng)目,通過(guò)JPA規(guī)范提供了優(yōu)雅而強(qiáng)大的實(shí)體映射與關(guān)系處理機(jī)制,下面就來(lái)介紹一下,感興趣的可以了解一下2025-04-04
Spring中propagation的7種事務(wù)配置及說(shuō)明
這篇文章主要介紹了Spring中propagation的7種事務(wù)配置及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
MyBatis CodeHelperPro激活方法詳細(xì)教程
MyBatisCodeHelper-Pro是IDEA下的一個(gè)插件,功能類似mybatis plugin,今天小編給大家分享MyBatis CodeHelperPro激活方法,需要的朋友跟隨小編一起看看吧2021-07-07
Java連接Mysql數(shù)據(jù)庫(kù)詳細(xì)代碼實(shí)例
這篇文章主要介紹了Java連接Mysql數(shù)據(jù)庫(kù)詳細(xì)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02

