본문 바로가기
JAVA

JAVA(2차 배열)

by 글로리. 2020. 6. 2.

01. 2차 배열

1) 배열 생성

 * 배열의 선언

// 데이터타입 뒤에 '[][]'를 명시.
int[][] a;

 * 배열의 할당

  • 입력방법 : [행][열]
// new 예약어 뒤에 데이터 타입과 배열의 행과열의 칸 수를 []안에 입력.
a = new int[2][3];    // 2행 3열

// 선언과 할당을 한번에
int[][] a = [2][3];

2) 원소에 값 대입

 * 각 원소에 직접 대입하기

a[0][0] = 2;    // 0행 0열
a[0][1] = 4;    // 0행 1열
a[0][2] = 6;    // 0행 2열

a[1][0] = 100;    // 1행 0열
a[1][1] = 200;    // 1행 1열
a[1][2] = 300;    // 1행 2열

 

* 선언, 할당, 값 대입 한번에 처리

int[][] a = new int[][] { {2, 4, 6}, {100, 200, 300} };

// 'new int[][]' 생략가능.
int[][] a = { {2, 4, 6}, {100, 200, 300} };

3) 가변배열

 * 2차배열의 정확한 개념은 1차 배열의 각 원소가 다른배열에 구성되어있는 형태

public class Array1
{
    public static void main(String[] args)
    {
        // 독립적인 1차 배열 구성
        int[] a = {1, 2, 3};
        int[] b = {100, 200, 300};

        int[][] Array1= {a, b};

        System.out.print(Array1[0][0] + ", ");
        System.out.print(Array1[0][1] + ", ");
        System.out.println(Array1[0][2]);
        System.out.print(Array1[1][0] + ", ");
        System.out.print(Array1[1][1] + ", ");
        System.out.println(Array1[1][2]);
    }
}

// 실행결과
1, 2, 3
100, 200, 300

 

 * 배열에서 모든행의 열이 같지 않을 수 도 있음.

public class Array2
{
    public static void main(String[] args) {
        // 1차 배열을 원소로 갖는 2차 배열 구성
        int[][] a = {{5, 10}, {100, 200, 300, 400}};

        System.out.print(a[0][0] + ", ");
        System.out.println(a[0][1]);
        System.out.print(a[1][0] + ", ");
        System.out.print(a[1][1] + ", ");
        System.out.print(a[1][2] + ", ");
        System.out.println(a[1][3]);
    }
}

- 위 내용을 표로 만들면 아래와 같다.

  0 1 2 3
0 5 10    
1 100 200 300 400

02. 유형

1) 달력만들기

public class CalTable
{
    public static void main(String[] args)
    {
        int[][] cal = new int[5][7];

        int count = 1;

        for (int i=0; i<cal.length; i++)
        {
            for (int j=0; j<cal[i].length; j++)
            {
                /* 이 부분에서 앞괄호는 첫째주 시작점
                   count는 해당 월 마지막일을 정한다. */
                if ((i==0 && j<2) || (count > 31))
                {
                    System.out.print("\t");
                }
                else
                {
                    System.out.print(count + "\t");
                    count++;
                }
            }
            System.out.println();
        }
    }
}

- 실행결과

첫째주가 화요일부터 시작이며 31일까지 있는 월의 달력

'JAVA' 카테고리의 다른 글

JAVA(값 복사 / 참조 복사)  (0) 2020.06.03
JAVA(메서드)  (0) 2020.06.03
JAVA(1차 배열)  (0) 2020.06.02
JAVA(기본문법 활용)  (0) 2020.06.01
JAVA (조건문, 반복문)  (0) 2020.06.01

댓글