JAVA 二維數(shù)組

二維數(shù)組的定義

A 二維數(shù)組的作用

要統(tǒng)計(jì)一個(gè)學(xué)校各個(gè)班級(jí)學(xué)生的考試成績,又該如何實(shí)現(xiàn)呢?

這時(shí)就需要用到多維數(shù)組,多維數(shù)組可以簡單地理解為在數(shù)組中嵌套數(shù)組。

B 定義格式

a 第一種定義格式:

int[][] arr = new int[3][4];

上面的代碼相當(dāng)于定義了一個(gè)3*4的二維數(shù)組

即二維數(shù)組的長度為3,二維數(shù)組中的每個(gè)元素又是一個(gè)長度為4的數(shù)組

b 第二種定義格式

int[][] arr = new int[3][];

第二種方式和第一種類似,只是數(shù)組中每個(gè)元素的長度不確定

c 第三種定義格式

int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};

二維數(shù)組中定義了三個(gè)元素,這三個(gè)元素都是數(shù)組

分別為{1,2}、{3,4,5,6}、{7,8,9}

二維數(shù)組元素的訪問

A: 二維數(shù)組的訪問

class ArrayDemo08 {

public static void main(String[] args){

//定義二維數(shù)組的方式

int[][] arr = new int[3][4];

System.out.println( arr );

System.out.println("二維數(shù)組的長度: " + arr.length);

//獲取二維數(shù)組的3個(gè)元素

System.out.println( arr[0] );

System.out.println( arr[1] );

System.out.println( arr[2] );

System.out.println("打印第一個(gè)一維數(shù)組的元素值");

System.out.println( arr[0][0] );

System.out.println( arr[0][1] );//訪問的為二維數(shù)組中第1個(gè)一維數(shù)組的第2個(gè)元素

System.out.println( arr[0][2] );

System.out.println( arr[0][3] );

System.out.println("打印第二個(gè)一維數(shù)組的元素值");

System.out.println( arr[1][0] );

System.out.println( arr[1][1] );

System.out.println( arr[1][2] );

System.out.println( arr[1][3] );

System.out.println("打印第三個(gè)一維數(shù)組的元素值");

System.out.println( arr[2][0] );

System.out.println( arr[2][1] );

System.out.println( arr[2][2] );

System.out.println( arr[2][3] );

}

}

二維數(shù)組內(nèi)存圖

A: 二維數(shù)組內(nèi)存圖

舉例:int[][] arr = new int[3][2];

外層數(shù)組長在內(nèi)存開辟連續(xù)的3個(gè)大的內(nèi)存空間,每一個(gè)內(nèi)存空間都對(duì)應(yīng)的有地址值

每一個(gè)大內(nèi)存空間里又開辟連續(xù)的兩個(gè)小的內(nèi)存空間.

二維數(shù)組的定義和訪問

A: 二維數(shù)組的定義和訪問

格式1:

int[][] arr = new int[3][]; 不推薦

格式2

int[][] arr = {{1,2,4},{4,7},{0,9,3}};

B: 二維數(shù)組的訪問

舉例:int[][] arr = {{1,2,4},{5,8,7},{0,9,3}};

想要打印數(shù)組中7這個(gè)元素需要先找到大的元素索引{5,7} 索引為2 ,在找7在{5,7}中的索引2

那么結(jié)果為 arr[2][2]? 第一個(gè)[2]代表大數(shù)組中{5,8,7}這個(gè)元素索引

第二個(gè)[2]代表{5,8,7}中7元素的索引

二維數(shù)組的遍歷

A:二維數(shù)組遍歷

int[][] arr = {{1,2,4},{4,7},{0,9,3}};

先使用for循環(huán)遍歷arr這個(gè)二維數(shù)組,得到每一個(gè)元素為arr[i]為一維數(shù)組

再外層for循環(huán)中嵌套一個(gè)for循環(huán)遍歷每一個(gè)一維數(shù)組arr[i],得到每一元素

B:舉例:遍歷二維數(shù)組

public class ArrayArrayDemo_2{

public static void main(String[] args){

int[][] arr = { {1,2,3},{4,5},{6,7,8,9},{0} };

//外循環(huán),遍歷二維數(shù)組

for(int i = 0 ; i < arr.length ;i++){

//內(nèi)循環(huán),遍歷每個(gè)一維數(shù)組 arr[0] arr[1] arr[i]

for(int j = 0 ; j < arr[i].length; j++){

System.out.print(arr[i][j]);

}

System.out.println();

}

}

C:二維數(shù)組累加求和

class ArrayDemo09 {

public static void main(String[] args){

int[][] arr2 = { {1,2},{3,4,5},{6,7,8,9,10} };

int sum2 = 0;

for (int i=0; i

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 1,916評(píng)論 0 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,779評(píng)論 18 399
  • 【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    葉總韓閱讀 5,167評(píng)論 0 41
  • 5月25星期四晴 今天朝陽八點(diǎn)才回家,到家以后匆匆的吃了點(diǎn)飯,我就開始給他檢查作業(yè),然后就一起讀了童話...
    呂朝陽媽媽閱讀 370評(píng)論 0 0
  • 上學(xué),總算熬到了畢業(yè)的日子,期待已久的畢業(yè)季終于在盛夏流火中姍姍來臨。 七月是集中撰寫畢業(yè)論文和做畢業(yè)設(shè)計(jì)的日子,...
    豐塬十一行閱讀 502評(píng)論 0 1