본문 바로가기
JAVA

[JAVA] - 자바 2차원 배열

by nam_ji 2024. 1. 6.

2차원 배열

정의

  • 자료형이 같은 1차원 배열들의 묶음 2차원 배열은 할당 된 공간 마다 인덱스 번호 두개 부여 (앞 번호는 행, 뒷 번호는 열)

2차원 배열 선언과 할당

    • 배열 선언 (Stack) 배열의 선언과 할당
      타입[][] 배열명; 타입[][] 배열명 = new 타입[행크기][열크기]
      타입 배열명[][]; 타입 배열명[][] = new 타입[행크기][열크기]
      타입[] 배열명[]; 타입[] 배열명[] = new 타입[행크기][열크기]
    • 2차원 배열 선언과 할당 예시
    • 더보기
      package com.namji95.javabasic;
      
      import java.util.Arrays;
      
      public class Two_Dimensional_Array {
      	/*
      	 * 2차원 배열 선언
      	 * int[][] arr;
      	 * int arr[][];
      	 * int[] arr[];
      	 * 
      	 * 2차원 배열 할당
      	 * int[][] arr = new int[][];
      	 * 
      	 * 2차원 배열 선언과 할당
      	 * int[][] arr = new int[][];
      	 * int arr[][] = new int[][];
      	 * int[] arr[] = new int[][];
      	 */
      	public static void main(String[] args) {
      		// 2차원 배열 선언 예시
      		int[][] arr1 = {
      			{1,2,3}, // 1행 3열
      			{4,5,6}, // 2행 3열
      			{7,8,9} // 3행 3열
      		};
      		int arr2[][] = {
      				{10,20},
      				{40},
      				{70,80,90}
      			};
      		int[] arr3[] = {
      				{100},
      				{400,500},
      				{700,800,900}
      			};
      		
      		// Arrays의 deepToString을 이용하여 2차원 배열 출력하는 방법
      		System.out.println("int[][] arr1 : " + Arrays.deepToString(arr1));
      		System.out.println("int[][] arr2 : " + Arrays.deepToString(arr2));
      		System.out.println("int[][] arr3 : " + Arrays.deepToString(arr3));
      		System.out.println();
      		
      		// row는 행을, col은 열을 표현하기 위함입니다.
      		for (int row = 0; row < arr1.length; row++) {
      			for (int col = 0; col < arr1[row].length; col++) {
      				System.out.print(row + ", " +  col + " | ");
      			}
      			System.out.println();
      		}
      		System.out.println();
      		
      		// 2차원 배열 선언과 할당
      		int[][] arr5 = new int[3][5];
      		
      		for (int row = 0; row < arr5.length; row++) {
      			for (int col = 0; col < arr5[row].length; col++) {
      				System.out.print(row + ", " + col + " | ");
      			}
      			System.out.println();
      		}
      		System.out.println();
      		
      		int arr6[][] = new int[7][5];
      		
      		for (int row = 0; row < arr6.length; row++) {
      			for (int col = 0; col < arr6[row].length; col++) {
      				System.out.print(row + ", " + col + " | ");
      			}
      			System.out.println();
      		}
      		System.out.println();
      		
      		int[] arr7[] = new int[3][7];
      		
      		for (int row = 0; row < arr7.length; row++) {
      			for (int col = 0; col < arr7[row].length; col++) {
      				System.out.print(row + ", " + col + " | ");
      			}
      			System.out.println();
      		}
      	}
      }
      
      /*
      출력
      
      int[][] arr1 : [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
      int[][] arr2 : [[10, 20], [40], [70, 80, 90]]
      int[][] arr3 : [[100], [400, 500], [700, 800, 900]]
      
      0, 0 | 0, 1 | 0, 2 | 
      1, 0 | 1, 1 | 1, 2 | 
      2, 0 | 2, 1 | 2, 2 | 
      
      0, 0 | 0, 1 | 0, 2 | 0, 3 | 0, 4 | 
      1, 0 | 1, 1 | 1, 2 | 1, 3 | 1, 4 | 
      2, 0 | 2, 1 | 2, 2 | 2, 3 | 2, 4 | 
      
      0, 0 | 0, 1 | 0, 2 | 0, 3 | 0, 4 | 
      1, 0 | 1, 1 | 1, 2 | 1, 3 | 1, 4 | 
      2, 0 | 2, 1 | 2, 2 | 2, 3 | 2, 4 | 
      3, 0 | 3, 1 | 3, 2 | 3, 3 | 3, 4 | 
      4, 0 | 4, 1 | 4, 2 | 4, 3 | 4, 4 | 
      5, 0 | 5, 1 | 5, 2 | 5, 3 | 5, 4 | 
      6, 0 | 6, 1 | 6, 2 | 6, 3 | 6, 4 | 
      
      0, 0 | 0, 1 | 0, 2 | 0, 3 | 0, 4 | 0, 5 | 0, 6 | 
      1, 0 | 1, 1 | 1, 2 | 1, 3 | 1, 4 | 1, 5 | 1, 6 | 
      2, 0 | 2, 1 | 2, 2 | 2, 3 | 2, 4 | 2, 5 | 2, 6 | 
      
      
       */

       


2차원 배열 구조

  • 2차원 배열 메모리 구조
  • 2차원 배열 저장 구조
     

'JAVA' 카테고리의 다른 글

[JAVA] - 조건문 (if, switch)  (0) 2024.01.07
[JAVA] - 연산자  (2) 2024.01.07
[JAVA] - 자바 기초  (0) 2024.01.03
[JAVA] - 자바 이해 / JVM이란?  (0) 2024.01.03
[JAVA] - 문자열 한 글자씩 분리하는 방법  (1) 2023.12.04