배열.length
을 사용하면 이후 배열의 길이가 바뀌게 될 때에도 반복문의 코드를 수정할 필요가 없다.
자바에서 배열을 사용할 때는 항상 배열의 길이를 설정해줘야한다.
공부하면서 배열 기존보다 길게 써야할 때는 어떻게해야하나 궁금증이 있었다.
방법은 생각보다 단순했다.
- 길이가 더 긴 임의의 배열을 하나만든다. (기존 배열 : Arr, 임의의 배열 : tmp)
- 임의의 배열에 기존 배열의 요소를 복사한다. (tmp[i] = arr[i];)
- 기본 배열을 나타내는 참조변수에 임의의 배열을 초기화한다. (arr = tmp;)
System.arraycopy
매서드를 이용하여 복사한다.
public static void main(String[] args) {
char[] abc = {'A', 'B', 'C', 'D'};
char[] num = {'0','1','2','3','4','5','6','7','8','9'};
System.out.println(abc);
System.out.println(num);
// 배열 abc와 num을 붙여서 하나의 배열(result)로 만든다.
char[] result = new char[abc.length+num.length];
System.arraycopy(abc, 0, result, 0, abc.length);
System.arraycopy(num, 0, result, abc.length, num.length);
System.out.println(result);
// 배열 abc을 배열 num의 첫 번째 위치부터 배열 abc의 길이만큼 복사
System.arraycopy(abc, 0, num, 0, abc.length);
System.out.println(num);
// number의 인덱스6 위치에 3개를 복사
System.arraycopy(abc, 0, num, 6, 3);
System.out.println(num);
} // main의 끝
ABCD
0123456789
ABCD0123456789
ABCD456789
ABCD45ABC9