안녕하세요
로로봉입니다 : )
오늘은 가변 배열과 배열 복사 방법에 대해 알아보도록 하겠습니다.
자바에서는 2차원 이상의 배열에 대해 배열의 배열 형태로 처리한다는 사실을 이용하면 보다 자유로운 배열을 구성 할 수 있습니다.
다차원 배열을 생성할 때 전체 배열 차수 중 마지막 차수의 크기를 지정하지 않고, 추후에 다른 크기의 배열을 생성함으로써 고정된 형태가 아닌 가변 배열을 구성할 수 있습니다.
일반적으로 고정된 2차원 배열을 생성할 경우 아래와 같이 5 x 3 크기의 2차원 배열 data를 생성할 수 있습니다.
int[][] data = new int[5][3];
위의 코드를 가변 배열로 아래와 같이 선언할 수 있습니다.
int[][] data = new int[5][];
data[0] = new int[3];
data[1] = new int[3];
data[2] = new int[3];
data[3] = new int[3];
data[4] = new int[3];
첫번째 방식과 같이 [5][3]을 지정하여 배열을 생성하는 경우 고정된 크기의 배열이 선언 되지만,
두번째 방식으로 2차원 배열을 생성하면 각 행마다 다른 크기의 배열도 생성이 가능합니다.
int[][] data = new int[5][];
data[0] = new int[1];
data[1] = new int[2];
data[2] = new int[3];
data[3] = new int[4];
data[4] = new int[5];
배열은 한번 생성하면 크기를 변경할 수 없기 때문에 더 많은 저장 공간이 필요하다면 보다 큰 배열을 새로 만들고 이전 배열로부터 내용을 복사해야 합니다.
배열간의 내용을 복사하려면 for문을 이용하거나 arraycopy()함수를 사용하면 됩니다.
arraycopy() 함수를 사용하는 방법을 알아보겠습니다.
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
arr1 배열의 0번째 데이터 부터 arr2 배열의 0번째 위치에 length 만큼 복사합니다.
이때 복사하려는 배열의 위치가 적절하지 못하거나 복사하려는 내용보다 여유공간이 적으면 ArrayIndexOutOfBoundsException이 발생합니다.
좋아요 ♥ + 구독 부탁드립니다 : )
'개발 정보 > JAVA' 카테고리의 다른 글
[JAVA] 자바 클래스와 객체 알아보기 (3) | 2022.04.13 |
---|---|
[JAVA] 자바 커맨드라인을 통해 입력받기 (0) | 2021.07.29 |
[JAVA] 자바 다차원 배열 (0) | 2021.07.08 |
[JAVA] 자바 배열에 대해 (0) | 2021.06.21 |
[JAVA] 자바 반복문 알아보기 (6) | 2021.06.09 |
댓글