java二維數組三個案例詳解


https://www.cnblogs.com/wanghang/p/6299890.html

java二維數組三個案例詳解

 

 

案例一:遍歷二維數組

 

/*
	需求:二維數組遍歷
	
	外循環控制的是二維數組的長度,其實就是一維數組的個數行數。
	內循環控制的是一維數組的長度,每一行,一維數組元素分別的個數。
*/
class Array2Test {
	public static void main(String[] args) {
		//定義一個二維數組
		int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
		
		//請問誰代表{1,2,3}
		//arr[0]就是第一個數組
		//arr[0] = {1,2,3};
		for(int x=0; x<arr[0].length; x++) {
			System.out.println(arr[0][x]);
		}
		System.out.println("--------------");
		
		for(int x=0; x<arr[1].length; x++) {
			System.out.println(arr[1][x]);
		}
		System.out.println("--------------");
		
		for(int x=0; x<arr[2].length; x++) {
			System.out.println(arr[2][x]);
		}
		System.out.println("--------------");
		
		//用循環改進
		for(int x=0; x<3; x++) {
			for(int y=0; y<arr[x].length; y++) {
				System.out.print(arr[x][y]+" ");
			}
			System.out.println();
		}
		System.out.println("--------------");
		
		//這個時候,注意了,3是我們根據上面的代碼得出來的
		//但是,它不能針對任何的數組都可以這樣
		//所以,我們應該想辦法改進
		//其實,外面的這個循環的長度就是二維數組的長度
		
		for(int x=0; x<arr.length; x++) {
			for(int y=0; y<arr[x].length; y++) {
				System.out.print(arr[x][y]+" ");
			}
			System.out.println();
		}
		System.out.println("--------------");
		
		//用方法改進
		//調用方法
		printArray2(arr);
		System.out.println("--------------");
		
		//我們再來一個列數是變化的
		int[][] arr2 = {{1,2,3},{4,5},{6}};
		printArray2(arr2);
	}
	
	/*
		需求:遍歷二維數組
		兩個明確:
			返回值類型:void
			參數列表:int[][] arr(他就是你定義的格式)
	*/
	public static void printArray2(int[][] arr) {
		for(int x=0; x<arr.length; x++) {
			for(int y=0; y<arr[x].length; y++) {
				System.out.print(arr[x][y]+" ");
			}
			System.out.println();
		}
	}
}

 

 

 

案例二:

公司季度營業額求和。(考察二維數組的遍歷在實際中的應用,學會轉換)

 

/*
	公司年銷售額求和
	某公司按照季度和月份統計的數據如下:單位(萬元)
	第一季度:22,66,44
	第二季度:77,33,88
	第三季度:25,45,65
	第四季度:11,66,99
	
	分析:
		A:把題目的數據用二維數組來表示
			int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
		B:如何求和呢?
			求和其實就是獲取到每一個元素,然后累加即可。
		C:定義一個求和變量sum,初始化值是0。
		D:通過遍歷就可以得到每一個二維數組的元素。
		E:把元素累加即可。
		F:最后輸出sum,就是結果。
*/
class Array2Test2 {
	public static void main(String[] args) {
		//把題目的數據用二維數組來表示
		int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
		
		//定義一個求和變量sum,初始化值是0。
		int sum = 0;
		
		//通過遍歷就可以得到每一個二維數組的元素。
		for(int x=0; x<arr.length; x++) {
			for(int y=0; y<arr[x].length; y++) {
				//把元素累加即可。
				sum += arr[x][y];
			}
		}
		
		//最后輸出sum,就是結果。
		System.out.println("一年的銷售額為:"+sum+"萬元");
	}
}



 

案例三:

打印楊輝三角形(行數可以鍵盤錄入)

 

/*

	需求:打印楊輝三角形(行數可以鍵盤錄入)
	
	1
	1 1	
	1 2 1
	1 3 3 1
	1 4 6 (4) 1 
	1 5 10 10 5 1

	分析:看這種圖像的規律
		A:任何一行的第一列和最后一列都是1
		B:從第三行開始,每一個數據是它上一行的前一列和它上一行的本列之和。如(4)=3+1
	
	步驟:
		A:首先定義一個二維數組。行數如果是n,我們把列數也先定義為n。
		  這個n的數據來自於鍵盤錄入。
		B:給這個二維數組任何一行的第一列和最后一列賦值為1
		C:按照規律給其他元素賦值
			從第三行開始,每一個數據是它上一行的前一列和它上一行的本列之和。
		D:遍歷這個二維數組。
*/
import java.util.Scanner;

class Array2Test3 {
	public static void main(String[] args) {
		//創建鍵盤錄入對象
		Scanner sc = new Scanner(System.in);
		
		//這個n的數據來自於鍵盤錄入。
		System.out.println("請輸入一個數據:");
		int n = sc.nextInt();
		
		//定義二維數組
		int[][] arr = new int[n][n];
		
		//給這個二維數組任何一行的第一列和最后一列賦值為1
		for(int x=0; x<arr.length; x++) {
			arr[x][0] = 1; //任何一行第1列
			arr[x][x] = 1; //任何一行的最后1列
		}
		
		//按照規律給其他元素賦值
		//從第三行開始,每一個數據是它上一行的前一列和它上一行的本列之和。
		for(int x=2; x<arr.length; x++) {
			//這里如果y<=x是有個小問題的,就是最后一列的問題(因為最后一列已經有值了),所以最后一列不用再賦值
			//所以這里要減去1
			//並且y也應該從1開始,因為第一列也是有值了,第一列不用再賦值,所以y從1開始計數
			for(int y=1; y<=x-1; y++) {
				//每一個數據是它上一行的前一列和它上一行的本列之和。
				arr[x][y] = arr[x-1][y-1] + arr[x-1][y];//記住:“外行內列”
			}
		}
		
		//遍歷二維數組
		for(int x=0; x<arr.length; x++) {
			for(int y=0; y<=x; y++) {//注意這里不是寫成y<arr[x].length,要實現“階梯形狀”的固定寫法y<=x。與九九乘法表類似
				System.out.print(arr[x][y]+"\t");
			}
			System.out.println();
		}
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM