반응형
1차원 배열의 선언
type[] 배열명 or type 배열명[]
int[] a;
int a[];
1차원 배열의 초기화
1. type[] 배열명 = {v1, v2, ...}; (선언과 동시에 해야 한다.)
char[] ch = {'A', 'B', 'C'};
2. 배열명 = new type[개수]; (선언과 별개로 초기화 가능)
int[] a;
a = new int[3];
// 각 배열의 원소는 int의 default value인 0으로 초기화 된다.
3. 배열명 = new type[]{v1, v2, ...}; (선언과 별개로 초기화 가능)
float[] b;
b = new float[]{1.2f, 2.3f, 3.4f};
다차원 배열의 선언
1. type[][] 배열명;
boolean[][] a;
2. type[] 배열명[];
long[] b[];
3. type 배열명[][];
double c[][];
다차원 배열의 초기화
1. type[][] 배열명 = { {v1, v2, ...}, ......, {va, vb, ...} };
int[][] a = { {1, 2}, {2, 3} };
2. 배열명 = new type[][]{ {v1, v2, ...}, ......, {va, vb, ...} };
a = new int[][]{ {1, 2}, {3, 4} };
3. 배열명 = new type[개수][개수];
a = new int[3][2];
// 배열의 각 원소들은 int의 default value인 0으로 초기화 된다.
4. 배열명 = new type[개수][];
int[][] b = new int[3][];
// Java는 다차원 배열을 가지고 있지않다. 단지 배열의 요소가 배열인 것 뿐이다.
// 이러한 특성을 이용하면 가로의 길이가 일정하지 않은 배열을 생성할 수 있다. (Ragged Array)
배열 복사
1. 배열 변수를 복사하는 경우, 참조변수만 복사되어 실제로는 두 변수가 동일한 배열을 참조한다. (얕은 복사)
int[] a = new int[5];
int[] b = a;
b[0] = 5; // a[0]의 값도 변경된다.
2. Arrays.copyOf() 메소드는 배열의 내용까지 복사한다. (깊은 복사)
int[] copy = Arrays.copyOf(a, a.Length);
3. 배열 복사와 동시에 배열의 크기를 늘릴 수 있다.
int[] copyDoubleSize = Arrays.copyOf(a, 2*a.Length);
2021.05.02 - [IT&프로그래밍/Java] - Java | clone()으로 깊은 복사하기
배열 정렬
Arrays.sort()
int[] a = {2, 8, 6, 3, 1, 10};
Array.sort(a); // 1, 2, 3, 6, 8, 10
반응형