Arrays.copyOf()와 Arrays.copyOfRange() 메소드를 통해 배열을 복사 할 수 있다.
값에 의한 복사이므로 복사된 배열에서 값을 바꿔도 원본 배열의 값이 바뀌지 않음!
int [] a = new int [] {1,2,3,4,5};
//배열 갯수만큼 복사하기
int [] b = Arrays.copyOf(a,5);
System.out.println(Arrays.toString(b));
//배열의 길이 늘리기
b = Arrays.copyOf(b,b.length+1);
System.out.println(Arrays.toString(b));
// 배열의 값 입력
b[5] = 3;
System.out.println(Arrays.toString(b));
//배열의 길이 늘리기
b = Arrays.copyOf(b,b.length+1);
System.out.println(Arrays.toString(b));
System.out.println();
// 0번째 인덱스부터 마지막 인덱스까지 카피 (파라미터로는 마지막인덱스 값이 올자리에 +1한값을 넣어준다.)
int [] c = new int[]{};
c = Arrays.copyOfRange(a,0,5);
System.out.println(Arrays.toString(c));
System.out.println();
// 배열의 길이 늘리기 => 인덱스 값들이 초기화 되는것을 확인가능
c = Arrays.copyOfRange(a,0,6);
c[5] = 6;
System.out.println(Arrays.toString(c));
c = Arrays.copyOfRange(a,0,7);
System.out.println(Arrays.toString(c));
//배열 갯수만큼 복사하기
[1, 2, 3, 4, 5]
//배열의 길이 늘리기 => 뒤에 추가적으로 값이 붙는것을 확인가능
[1, 2, 3, 4, 5, 0]
// 배열의 값 입력
[1, 2, 3, 4, 5, 3]
//배열의 길이 늘리기
[1, 2, 3, 4, 5, 3, 0]
// 0번째 인덱스부터 마지막 인덱스까지 카피 (파라미터로는 마지막인덱스 값이 올자리에 +1한값을 넣어준다.)
[1, 2, 3, 4, 5]
// 배열의 길이 늘리기 => 인덱스 값들이 초기화 되는것을 확인가능
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 0, 0]