Daily coding
Java Basic : day 3 - 2차원 배열 본문
이차원 배열
/*
Array : 같은 자료형의 묶음 변수들
관리 : index (0 ~ n-1)
다른 자료형의 묶음 : class (Data Transfer Object(DTO), Value Object(VO)), structure(C언어)
1차원 배열 할당
int array[] = new int [5];
int array[] = {1,2,3};
- 선형구조 : 0-1-2-3-4-5
단점 :
- 같은 자료형밖에 사용하지 못함
- 정적이다 (공간이 낭비되거나 또는 모자랄 수 있음)
이차원 배열
int arr[][] = new int[열의 인덱스][행의 인덱스];
//행을 앞으로 뺄 수 있음
new [행]int[열]
int **pp;
: C언어에서의 포인터포인터와 2차원배열은 같은 개념
* 이차원 배열 *
int arr[2][3] = {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
arr[1][2] = 5;
C의 **사용하기 : arr[1][2] == *(*(pp+1)+2)
*/
int Array2[][];
Array2 = new int[3][]; //우선 열 만 3개 할당
//행을 직접 만듦
int data1[] = new int[5];
data1[0] = 1;
data1[1] = 2;
data1[2] = 3;
data1[3] = 4;
data1[4] = 8;
int data2[] = new int[4];
data2[0] = 5;
data2[1] = 6;
data2[2] = 7;
data2[3] = 8;
int data3[] = new int[4];
data3[0] = 9;
data3[1] = 10;
data3[2] = 11;
data3[3] = 12;
//2차원 배열의 행에 대입
Array2[0] = data1;
Array2[1] = data2;
Array2[2] = data3;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < Array2[i].length; j++) {
System.out.print(Array2[i][j]+ " ");
}System.out.println();
}
//각 행의 데이터 수가 달라도 집어넣을 수는 있음
// 2번째 방법
int Array21[][] = new int[2][3];
Array21[0][0] = 10;
Array21[0][1] = 11;
Array21[0][2] = 12;
Array21[1][0] = 20;
Array21[1][1] = 21;
Array21[1][2] = 22;
// length는 열의 길이 기준 (맨 앞의 [])
// 안 쪽 for문의 범위는 이차원배열의 첫열의 첫행의 length로 지정
for (int i = 0; i < Array21.length; i++) {
for (int j = 0; j < Array21[0].length; j++) {
System.out.println(Array21[i][j]+ " ");
}System.out.println();
}
//자바에서는 반드시 열 묶음 {} 을 적어줘야 오류가 생기지 않는다.
int Array22[][]= {
{ 1, 2, 3, 4 }, //0 0~3
{ 11, 12, 13 ,14 }, //1 0~3
{ 21 ,22, 23, 24 } //2 0~3
};
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 3 - Example 02 : 2차원 배열을 1차원 배열에 넣기 (0) | 2019.11.20 |
---|---|
Java Basic : day 3 - Example 01 : 최대값, 최소값 찾기 (Max / Min) (0) | 2019.11.20 |
Java Basic : day 3 - String 데이터 타입 / String 메소드 (0) | 2019.11.20 |
Java Basic : day 2 - Example 02 : 데이터 입력과 합계/평균 구하기 (0) | 2019.11.20 |
Java Basic : day 2 - Example 02 : Array (배열의 범위) (0) | 2019.11.20 |