동적가변배열
배열의 길이를 동적으로, 필요시에 생성하는 것
동적가변배열이 아닌 것은 처음부터 배열의 길이를 초기화 해서 만들어 사용하지만,
동적가변배열은 필요시에 필요한 만큼 만들어서 사용한다.
ex)
int[][] arr = new int[3][]; //내부를 비워두었을 때의 값 : null
int[][] arr2 = new int[3][0]; //내부의 값이 0일 때의 값 : []
for (int[] is : arr) {
System.out.print(Arrays.toString(is));
}
for (int[] is : arr2) {
System.out.print(Arrays.toString(is));
}
[실행결과]
null
null
null
[]
[]
[]
예제 1.
<길이와 크기가 1씩 증가하는 동적가변배열>
int[][] arr = new int[5][]; //내부를 비워두고 선언
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[i + 1]; //arr[]의 길이가 1씩 증가하는 배열 만들기
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (i + j) + 1;
}
}
for (int[] cs : arr) {
System.out.println(Arrays.toString(cs));
}
[실행결과]
[1]
[2, 3]
[3, 4, 5]
[4, 5, 6, 7]
[5, 6, 7, 8, 9]
예제 2.
<랜덤한 길이와 크기의 동적가변배열>
- 배열의 길이는 1 ~ 5 사이의 정수로, 배열의 크기는 1 ~ 10 사이의 정수로 한다.
int[][] arr = new int[5][];
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[(int)(Math.random() * 5 + 1)]; //1 ~ 5 사이의 정수
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (int)(Math.random() * 10 + 1); //1 ~ 10 사이의 정수
}
}
for (int[] is : arr) {
System.out.println(Arrays.toString(is));
}
[3회 실행결과]
[3]
[9, 10, 6, 9]
[3]
[9, 2, 1, 7, 3]
[5, 7, 5, 9, 10]
[5]
[10, 3, 8, 9, 9]
[10, 9]
[2, 8]
[3, 2, 10, 8]
[1, 9, 2]
[1, 4]
[6, 10, 9, 8]
[8, 2]
[8, 4, 4]
'JAVA' 카테고리의 다른 글
currentTimeMillis (0) | 2021.07.14 |
---|---|
Date / Calendar / SimpleDateFormat (0) | 2021.07.14 |
배열 복사 (ArrayCopy) (0) | 2021.07.13 |
isDigit (0) | 2021.07.11 |
charAt (0) | 2021.07.09 |