본문 바로가기
JAVA/배열

Array_다차원배열(3)

by pms93 2022. 7. 20.
package arrays;

import java.util.Scanner;

public class Array3 {

	public static void main(String[] args) {

		// 다차원배열
		// int array[][] = new int[3][4];
		// - 배열의 차원(대괄호)이 증가 할 수록 트리 형식의 구조로 뻗어나간다고 생각하면 된다.
		// - array[3]의 각각의 배열은 array와 마찬가지로 array[3][0 ~ 3]의 참조값(주소값)을 담게 된다.
		// ex)
		// array[0] = array[0][0], array[0][1], array[0][2], array[0][3]
		// array[1] = array[1][0], array[1][1], array[1][2], array[1][3]
		// array[2] = array[2][0], array[2][1], array[2][2]. array[2][3]
		// 배열 선언시 첫 대괄호 제외 나머지는 빈 공간으로 선언이 가능하다.
		// int array[][][] = new int[5][][]; 
		int arr[][] = new int[][] { { 10, 20, 30 }, { 40, 50, 60 }, { 70, 80, 90 } };

		System.out.print(arr[0][0] + " ");
		System.out.print(arr[0][1] + " ");
		System.out.print(arr[0][2] + " ");
		System.out.println();
		System.out.print(arr[1][0] + " ");
		System.out.print(arr[1][1] + " ");
		System.out.print(arr[1][2] + " ");
		System.out.println();
		System.out.print(arr[2][0] + " ");
		System.out.print(arr[2][1] + " ");
		System.out.print(arr[2][2] + " ");

		// 아래의 코드처럼 가변배별의 생성도 가능하다.
		// ex1)
		int arr2[][] = new int[][] { { 10, 20, 30, 40 }, { 50, 60 }, { 70, 80, 90, 100, 110 }, { 120 } };

		System.out.println("\n행의 수 : " + arr2.length);
		System.out.println("칸의 수 : " + arr2[0].length);
		System.out.println("칸의 수 : " + arr2[1].length);
		System.out.println("칸의 수 : " + arr2[2].length);
		System.out.println("칸의 수 : " + arr2[3].length);

		for (int i = 0; i < arr2.length; i++) {
			for (int j = 0; j < arr2[i].length; j++) {
				System.out.print(arr2[i][j] + " ");
			}
			System.out.println();
		}

		// ex2)
		Scanner sc = new Scanner(System.in);

		System.out.print("몇 행의 배열을 만드시겠습니까? : ");
		int length = sc.nextInt();
		int[][] arr3 = new int[length][];

		System.out.println("각 행에 배열을 만드세요!");
		for (int i = 0; i < arr3.length; i++) {
			System.out.print((i + 1) + "번째 행의 배열 : ");
			int n = sc.nextInt();
			arr3[i] = new int[n];
		}

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

		for (int i = 0; i < arr3.length; i++) {
			for (int j = 0; j < arr3[i].length; j++)
				System.out.print(arr3[i][j] + " ");
			System.out.println();
		}
	}
}

'JAVA > 배열' 카테고리의 다른 글

배열 예제(3)  (0) 2022.07.20
배열 예제(2)  (0) 2022.07.20
배열 예제(1)  (0) 2022.07.20
Array_1차원배열(2)  (0) 2022.07.20
Array_1차원배열(1)  (0) 2022.07.19