카테고리 없음

Java | 배열 (1차원 배열, 다차원 배열, 배열 복사, 배열 정렬)

zuyo 2021. 5. 2. 20:12
반응형

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()으로 깊은 복사하기

 

Java | clone()으로 깊은 복사하기

clone() Object 클래스의 메소드로, 이 메소드가 호출된 인스턴스의 복사본(깊은 복사)이 생성되고 복사본의 참조 값이 반환된다. 클래스가 Cloneable 인터페이스를 구현(implements)하고 있어야 clone()으

zuyo.tistory.com

 

배열 정렬

Arrays.sort()

int[] a = {2, 8, 6, 3, 1, 10};
Array.sort(a); // 1, 2, 3, 6, 8, 10
반응형