欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?二維數(shù)組創(chuàng)建及使用方式

 更新時間:2022年08月19日 10:26:37   作者:深淺Java  
這篇文章主要介紹了Java?二維數(shù)組創(chuàng)建及使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

二維數(shù)組的創(chuàng)建

二維數(shù)組好比一個表格,第一個下標(biāo)表示行,第二個下標(biāo)表示列,數(shù)組的創(chuàng)建和初始化與一位數(shù)組一模一樣,及二維數(shù)組就是一個把多個一維數(shù)組包起來的數(shù)組。

數(shù)組的創(chuàng)建:

type[][] arrayName;或者 type arrayName[][];

數(shù)組的初始化:

給數(shù)組分配空間大小,不能被修改,在賦值。

type[][] arrayName=new type[length1][length2]

通過new給數(shù)組賦值,不給空間大小。

type[][] arrayName=new type[][]{{值1,值2,值3},{值1,值2,值3}};

直接給數(shù)組賦值,空間大小不分配。

type[][] arrayName={{值1,值2,值3},{值1,值2,值3}};

數(shù)組的二維長度為空。

type[][] arrayName=new type[length1][];

數(shù)組元素的獲?。?/strong>

二維數(shù)組要通過兩個下標(biāo)來獲取,例如:arrayName[0][0] 獲取最前面的元素值,arrayName[arrayName.length-1][arrayName[arrayName.length-1].length-1] 取出數(shù)組的最后一個元素。

例1:給定一個3行3列的二維數(shù)組,并初始化賦值,每行輸出三個就換行。

public class dome2{
??? ?public static void main(String[] args) {
??? ? ?int[][] a= {{1,6,5},{7,3,0},{1,5,7}};
??? ? ?
??? ? ?for(int i=0;i<a.length;i++) { ?//二維數(shù)組的行循環(huán)
??? ??? ? ?
??? ??? ? ?for(int j=0;j<a[i].length;j++) { ?//二維數(shù)組的列循環(huán)
??? ??? ??? ? ?
??? ??? ??? ? System.out.print(a[i][j]+" "); ?//輸出每個元素
??? ??? ??? ??
??? ??? ??? ? ?if(a[i][2]==a[i][j]) { ?//當(dāng)每一行輸出三列后換行
??? ??? ??? ??? ? ?
??? ??? ??? ??? ? ?System.out.println();
??? ??? ??? ??? ? ?
??? ??? ??? ? ?}
??? ??? ? ?}
??? ? ?}
?? ?}
}

結(jié)果
1 6 5
7 3 0
1 5 7

例2: 循環(huán)輸入3行3列的二維數(shù)組,并將它順時針旋轉(zhuǎn)90°輸出三行三列。

import java.util.Scanner;

public class dome2{
??? ?public static void main(String[] args) {
??? ? ?int[][] a=new int[3][3];
??? ? ?Scanner sc=new Scanner(System.in);
??? ? ?//循環(huán)輸入
??? ? ?for(int i=0;i<a.length;i++) {
??? ??? ? ?for(int j=0;j<a[i].length;j++) {
??? ??? ??? ? ?a[i][j]=sc.nextInt();
??? ??? ? ?}
??? ? ?}
??? ? ?//每行3個換行
??? ? for(int i=0;i<a.length;i++) {
?? ??? ? ?for(int j=0;j<a[i].length;j++) {
?? ??? ??? ? ?System.out.print(a[i][j]+" ");
?? ??? ??? ? ?if(a[i][2]==a[i][j]) {
?? ??? ??? ??? ? ?System.out.println();
?? ??? ??? ? ?}
?? ??? ? ?}
?? ? ?}
??? ? //創(chuàng)建新的數(shù)組并且旋轉(zhuǎn)賦值
??? ? int[][] b=new int[3][3];
??? ? for(int i=0;i<3;i++) {
?? ??? ? ?for(int j=0;j<3;j++) {
?? ??? ??? ? ?b[j][2-i]=a[i][j];
?? ??? ? ?}
?? ? ?}
??? ? //循環(huán)輸出
??? ?for(int i=0;i<b.length;i++) {
?? ??? ? ?for(int j=0;j<b[i].length;j++) {
?? ??? ??? ? ?System.out.print(b[i][j]+" ");
?? ??? ??? ? ?if(b[i][2]==b[i][j]) {
?? ??? ??? ??? ? ?System.out.println();
?? ??? ??? ? ?}
?? ??? ? ?}
?? ? ?}
?? ?}
}

結(jié)果
1 2 3 4 5 6 7 8 9
1 2 3
4 5 6
7 8 9
旋轉(zhuǎn)后的結(jié)果
7 4 1
8 5 2
9 6 3

二維數(shù)組基本使用

  • 二維數(shù)組的應(yīng)用場景
  • 比如我們開發(fā)一個五子棋游戲,棋盤就是需要二維數(shù)組來表示。如圖:

1. 二維數(shù)組的使用

  • 快速入門案例:TwoDimensionalArray01.java
  • 請用二維數(shù)組輸出如下圖形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
//什么是二維數(shù)組:

	//1. 從定義形式上看 int[][]
	//2. 可以這樣理解,原來的一維數(shù)組的每個元素是一維數(shù)組, 就構(gòu)成二維數(shù)組
	int[][] arr = { {0, 0, 0, 0, 0, 0},
	        {0, 0, 1, 0, 0, 0},
	        {0,2,  0, 3, 0, 0},
	        {0, 0, 0, 0, 0, 0} };
	//輸出二維圖形
	for(int i = 0; i < arr.length; i++) {//遍歷二維數(shù)組的每個元素
	    //遍歷二維數(shù)組的每個元素(數(shù)組)
	    //解讀
	    //1. arr[i] 表示 二維數(shù)組的第i+1個元素 比如arr[0]:二維數(shù)組的第一個元素
	    //2. arr[i].length 得到 對應(yīng)的 每個一維數(shù)組的長度
	    for(int j = 0; j < arr[i].length; j++) {
	        System.out.print(arr[i][j] + " "); //輸出了一維數(shù)組
	    }
	    System.out.println();//換行
	}

  • 舉例:訪問二位數(shù)組中值為 3 的數(shù)組坐標(biāo)
	//關(guān)于二維數(shù)組的關(guān)鍵概念
	//(1)
	System.out.println("二維數(shù)組的元素個數(shù)=" + arr.length);
	//(2) 二維數(shù)組的每個元素是一維數(shù)組, 所以如果需要得到每個一維數(shù)組的值
	//    還需要再次遍歷
	//(3) 如果我們要訪問第 (i+1)個一維數(shù)組的第j+1個值 arr[i][j];
	//    舉例 訪問 3, =》 它是第3個一維數(shù)組的第4個值 arr[3-1][4-1] = arr[2][3]
	System.out.println("第3個一維數(shù)組的第4個值=" + arr[2][3]); //3
  • 3的值在二維數(shù)組里對應(yīng)的第3行第4列的值,3對應(yīng)的坐標(biāo)本來是 arr[3][4],但數(shù)組是從0開始的,所以減1,就是arr[2][3],所以 3 對應(yīng)的實際坐標(biāo)就是arr[2][3]

2. 使用方式 1: 動態(tài)初始化

TwoDimensionalArray02.java

1.語法: 類型[][] 數(shù)組名=new 類型[大小][大小]

2.比如: int a[][]=new int[2][3],表示這個二位數(shù)組里面有兩個一維數(shù)組,而每個一維數(shù)組里有三個元素

3.使用演示

  • 沒有賦值,默認值為 0
	int arr[][] = new int[2][3];
	//遍歷arr數(shù)組
	for(int i = 0; i < arr.length; i++) {
	    for(int j = 0; j < arr[i].length; j++) {//對每個一維數(shù)組遍歷
	        System.out.print(arr[i][j] +" ");
	    }
	    System.out.println();//換行
	}

  • 把上面的數(shù)組進行初始化賦值,arr[1][1] = 8 表示 在第二個一維數(shù)組的第二個元素的值為 8
	int arr[][] = new int[2][3];
	arr[1][1] = 8;
	//遍歷arr數(shù)組
	for(int i = 0; i < arr.length; i++) {
	    for(int j = 0; j < arr[i].length; j++) {//對每個一維數(shù)組遍歷
	        System.out.print(arr[i][j] +" ");
	    }
	    System.out.println();//換行
	}

二維數(shù)組在內(nèi)存的存在形式

3. 使用方式 2: 動態(tài)初始化

TwoDimensionalArray02.java

  • 先聲明:類型 數(shù)組名[][];
  • 再定義(開辟空間) 數(shù)組名 = new 類型[大小][大小];
  • 賦值(有默認值,比如 int 類型的就是 0)
  • 使用演示
int arr[][]; //聲明二維數(shù)組
arr = new int[2][3]; //再開空間

4. 使用方式 3: 動態(tài)初始化-列數(shù)不確

TwoDimensionalArray03

代碼實現(xiàn):

	/*
	看一個需求:動態(tài)創(chuàng)建下面二維數(shù)組,并輸出
	
	i = 0:	1
	i = 1:	2	2
	i = 2:	3	3	3
	
	一個有三個一維數(shù)組, 每個一維數(shù)組的元素是不一樣的
	*/
	
	//創(chuàng)建 二維數(shù)組,一個有3個一維數(shù)組,但是每個一維數(shù)組還沒有開數(shù)據(jù)空間
	int[][] arr = new int[3][];
	
	for(int i = 0; i < arr.length; i++) {//遍歷arr每個一維數(shù)組
	    //給每個一維數(shù)組開空間 new
	    //如果沒有給一維數(shù)組 new ,那么 arr[i]就是null
	    arr[i] = new int[i + 1];
	
	    //遍歷一維數(shù)組,并給一維數(shù)組的每個元素賦值
	    for(int j = 0;  j < arr[i].length; j++) {
	        arr[i][j] = i + 1;//賦值
	    }
	
	}
	
	System.out.println("=====arr元素=====");
	//遍歷arr輸出
	for(int i = 0; i < arr.length; i++) {
	    //輸出arr的每個一維數(shù)組
	    for(int j = 0; j < arr[i].length; j++) {
	        System.out.print(arr[i][j] + " ");
	    }
	    System.out.println();//換行
	}

5. 使用方式 4: 靜態(tài)初始化

TwoDimensionalArray04.java

  • 定義 類型 數(shù)組名[][] = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}
  • 使用即可 [ 固定方式訪問 ]
  • 比如:
int[][] arr = {{1,1,1}, {8,8,9}, {100}};
  • 解讀

1.定義了一個二維數(shù)組 arr

2.arr 有三個元素(每個元素都是一維數(shù)組)

3.第一個一維數(shù)組有 3 個元素 , 第二個一維數(shù)組有 3 個元素, 第三個一維數(shù)組有 1 個元素

  • 案例:

TwoDimensionalArray05.java

int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍歷該二維數(shù)組,并得到和

	/*
	思路
	1. 遍歷二維數(shù)組,并將各個值累計到 int sum
	*/
	int arr[][]= {{4,6},{1,4,5,7},{-2}};
	int sum = 0;
	for(int i = 0; i < arr.length; i++) {
	    //遍歷每個一維數(shù)組
	    for(int j = 0; j < arr[i].length; j++) {
	        sum += arr[i][j];
	    }
	}
	System.out.println("sum=" + sum);

6. 二維數(shù)組的應(yīng)用案例

使用二維數(shù)組打印一個 10 行楊輝三角 YangHui.java

	int[][] yangHui = new int[12][];
	for(int i = 0; i < yangHui.length; i++) {//遍歷yangHui的每個元素
	
		//給每個一維數(shù)組(行) 開空間
		yangHui[i] = new int[i+1];
		//給每個一維數(shù)組(行) 賦值
		for(int j = 0; j < yangHui[i].length; j++){
			//每一行的第一個元素和最后一個元素都是1
			if(j == 0 || j == yangHui[i].length - 1) {
				yangHui[i][j] = 1;
			} else {//中間的元素
				yangHui[i][j]  =  yangHui[i-1][j] + yangHui[i-1][j-1];
			}
		}
	}
	//輸出楊輝三角
	for(int i = 0; i < yangHui.length; i++) {
		for(int j = 0; j < yangHui[i].length; j++) {//遍歷輸出該行
			System.out.print(yangHui[i][j] + "\t");
		}
		System.out.println();//換行.
	}

7. 二維數(shù)組使用細節(jié)和注意事項

一維數(shù)組的聲明方式有:

int[] x 或者 int x[]

二維數(shù)組的聲明方式有:

int[][] y 或者 int[] y[] 或者 int y[][]

二維數(shù)組實際上是由多個一維數(shù)組組成的,它的各個一維數(shù)組的長度可以相同,也可以不相同。比如: map[][] 是一個二維數(shù)組

int map [][] = {{1,2},{3,4,5}}

由 map[0] 是一個含有兩個元素的一維數(shù)組 ,map[1] 是一個含有三個元素的一維數(shù)組構(gòu)成,我們也稱為列數(shù)不等的二維數(shù)組

8. 二維數(shù)組課堂練習(xí)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring boot項目生成docker鏡像并完成容器部署的方法步驟

    spring boot項目生成docker鏡像并完成容器部署的方法步驟

    這篇文章主要介紹了spring boot項目生成docker鏡像并完成容器部署的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • springboot配置https安全連接的方法

    springboot配置https安全連接的方法

    這篇文章主要介紹了springboot配置https安全連接的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 一定要讓你搞懂Java位運算符

    一定要讓你搞懂Java位運算符

    這篇文章主要為大家介紹了Java位運算符,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Java基礎(chǔ)MAC系統(tǒng)下IDEA連接MYSQL數(shù)據(jù)庫JDBC過程

    Java基礎(chǔ)MAC系統(tǒng)下IDEA連接MYSQL數(shù)據(jù)庫JDBC過程

    最近一直在學(xué)習(xí)web項目,當(dāng)然也會涉及與數(shù)據(jù)庫的連接這塊,這里就總結(jié)一下在IDEA中如何進行MySQL數(shù)據(jù)庫的連接,這里提一下我的電腦是MAC系統(tǒng),使用的編碼軟件是IDEA,數(shù)據(jù)庫是MySQL
    2021-09-09
  • Java中的Kotlin?內(nèi)部類原理

    Java中的Kotlin?內(nèi)部類原理

    這篇文章主要介紹了Java中的Kotlin?內(nèi)部類原理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • Spring Boot 項目發(fā)布到 Tomcat 服務(wù)器的操作步驟

    Spring Boot 項目發(fā)布到 Tomcat 服務(wù)器的操作步驟

    這篇文章主要介紹了Spring Boot 項目發(fā)布到 Tomcat 服務(wù)器的操作步驟,需要的朋友可以參考下
    2017-04-04
  • Mybatis-plus 批量插入太慢的問題解決(提升插入性能)

    Mybatis-plus 批量插入太慢的問題解決(提升插入性能)

    公司使用的Mybatis-Plus操作SQL,用過Mybatis-Plus的小伙伴一定知道他有很多API提供給我們使用,但是批量插入大數(shù)據(jù)太慢應(yīng)該怎么解決,本文就詳細的介紹一下,感興趣的可以了解一下
    2021-11-11
  • SpringMVC自定義攔截器實現(xiàn)過程詳解

    SpringMVC自定義攔截器實現(xiàn)過程詳解

    這篇文章主要介紹了SpringMVC自定義攔截器實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Spring連接Mysql數(shù)據(jù)庫的實現(xiàn)步驟

    Spring連接Mysql數(shù)據(jù)庫的實現(xiàn)步驟

    本文主要介紹了Spring連接Mysql數(shù)據(jù)庫的實現(xiàn)步驟,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot 返回Json實體類屬性大小寫的解決

    SpringBoot 返回Json實體類屬性大小寫的解決

    這篇文章主要介紹了SpringBoot 返回Json實體類屬性大小寫的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論