2차원 배열이상의 다차원 배열을 생성할때 배열의 마지막 차수를 정하지 않고 가변적으로 그 크기를 조절하는 것을 말한다.
Example 1.0
int[][] arr = new int [3][];
다음과 같은 2차원 배열을 만들었을시, 첫번째 배열을 3까지 생성하였지만, 두번째 배열은 비워 놓는 것으로 메모리의 비효율적인 사용을 방지 할수 있다.
Syntax :
copyOf(int[] original, int newLength)
+ java.util에 속하는 메서드로 사용시 import를 해주어야 사용할수 있다.
+ 첫번째 변수는 복사 하고자 하는 배열을 뜻하며 두번째 변수는 복사된 배열의 길이를 뜻한다.
Example 2.0
int[] arr = new int []{}; //공백의 배열을 생성한다.
arr = Arrays.copyOf(arr , arr.length +1); // 자기 자신을 복제 한뒤 배열을 한칸 더 늘린다.
Syntax :
copyOfRange(int[] original_array, int from_index, int to_index)
+ int[] original_array : 복사 하고자 하는 배열
+ int from_index : 복사를 시작할 위치
+ int to_index : 복사가 끝나는 위치
Example 3.0
int[] arr = {1, 2, 3, 4, 5}; // arr 배열을 생성
int [] result = []{}; // 빈 배열을 생성
int[] result = Arrays.copyOfRange(arr, 2 , arr.length); // 결과 값: {3, 4, 5}
Syntax :
System.arraycopy(src, srcPos, dest, destPos, length);
+ src : 복사해오는 소스 파일 또는 원본 파일 / 내가 복사 하고 싶은 배열
+ srcPos : 원본 파일에서 복사를 시작하고 싶은 인덱스 번호
+ dest : 위의 src가 복사되는 배열
+ destPos : src 배열이 dest배열 내에서 시작되는 위치/ 인덱스 번호
+ length : src 배열의 길이
Example 4.0
int[] arr1 = {1, 2, 3}; // arr1 배열을 생성
String[] arr2 = {"A", "B", "C"}; // arr2 배열을 생성
System.arraycopy(arr1,0,arr2,1,2); // 결과 값: {A,1,2}
배열 문제를 푸느라 한참을 걸렸다. 머리로 생각 하기에는 간단하게 풀수 있을 것 같은데 구현 하려는 조건이 점점 까다로워 질수록 예외들이 너무 많아진다.