본문 바로가기
study/Java

[Java] 17. 배열 (다차원 배열, 2차원 배열)

by 금이패런츠 2022. 3. 16.
728x90
반응형
package chap5;
/*
 * 다차원 배열 : 자바에서 다차원 배열은 배열의 배열로 표시한다.
 * 
 * 2차원 배열 : 1차원 배열의 배열. 1차원 배열의 참조변수의 배열임.
 */
public class ArrEx7 {
	public static void main(String[] args) {
    
		int arr[][] = new int[3][2];
		arr[0][0] = 10;
		arr[0][1] = 20;
		arr[1][0] = 30;
		arr[1][1] = 40;
		arr[2][0] = 50;
		arr[2][1] = 60;
		//arr.length : 3
		//arr[0].length : 2
		//arr[1].length : 2
		//arr[2].length : 2
		for(int i = 0; i < arr.length; i++ ) {
			for(int j = 0; j < arr[i].length; j++) {
				System.out.print("arr[" + i + "][" + j + "] = " + arr[i][j] + ", ");
			}
			System.out.println();
		}
		// 문제 : 행의합과 열의합을 출력하기
		// 0행의 합
		// 1행의 합
		// 0열의 합
		// ...
		int[] cols = new int[2]; //열의 합을 저장할 배열
		//cols[0]=10+30+50
		//cols[1]=20+40+60
		for(int i = 0; i < arr.length; i++) { //2
			int sum = 0;
			for(int j = 0; j < arr[i].length; j++) { //1
				sum += arr[i][j];
				cols[j] += arr[i][j]; //arr[2][1]
			}
			System.out.println(i + "행의 합:" + sum);
			
		}
		for(int i=0; i < cols.length; i++) {
			System.out.println(i + "열의 합:" + cols[i]);
		}
		
		//1차원 배열 생성
		int[] arr1 = {1,2,3,4,5};
		arr[1] = arr1;
		//arr[1] 참조변수가 참조하는 배열의 객체와 arr1 참조변수가 참조하는 객체는 같다.
		//arr배열을 출력하기
		for(int i = 0; i < arr.length; i++ ) {
			for(int j = 0; j < arr[i].length; j++) {
				System.out.print("arr[" + i + "][" + j + "] = " + arr[i][j] + ", ");
			}
			System.out.println();
		}
		//arr1[0] 값을 100으로 변경하기
		arr1[0] = 100;
		//arr배열을 출력하기
				for(int i = 0; i < arr.length; i++ ) {
					for(int j = 0; j < arr[i].length; j++) {
						System.out.print("arr[" + i + "][" + j + "] = " + arr[i][j] + ", ");
					}
					System.out.println();
				}
	}
}
728x90
반응형