<임의의 값으로 배열 채우기>
연속 또는 불연속적인 값들로 배열을 초기화한다.
다음과 같이 Math 클래스의 random()을 이용하여
배열을 연속적인 범위의 임의의 값으로 채우는 것이 가능하다.
Math.random() // 0.0 ~ 1.0
(int)(Math.random() * 10) // 0 ~ 10
(int)(Math.random() * 10 + 1) // 1 ~ 11
Math 클래스의 random()은
0.0에서 1.0 사이의 소수 중의 하나를
double 타입으로 반환한다.
(예 : 0.23040494703437164)
Math.random()에 숫자나 혹은
숫자를 반환하는 수식이나 변수 등을 연산한 후
필요한 타입으로 형변환하면
원하는 범위 내에서 임의의 값을 반환하게 할 수 있다.
이를 이용해 아래와 같이
배열을 임의의 값으로 초기화(할당)할 수 있다.
int[] num = new int[5];
for (int i = 0; i < num.length; i++) {
int tmp = (int)(Math.random() * num.length);
num[i] = tmp;
}
System.out.println(Arrays.toString(num)); // [3, 4, 2, 0, 4]
int tmp = (int)(Math.random() * num.length);로 인해
tmp에 0, 1, 2, 3, 4 중 하나가 저장되었다.
int[] code = { -4, -1, 3, 6, 11 };
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
int tmp = (int)(Math.random() * code.length);
arr[i] = code[tmp];
}
System.out.println(Arrays.toString(arr)); // [-1, 11, -4, -4, 11, 6, -4, 3, 3, 6]
위와 같이 임의의 수를 인덱스 값으로 반환하여
code 배열의 요소에 저장된 값을 무작위로 가져와
for문을 이용해 arr 배열의 요소들을 채울 수도 있다.
Math.random()이 이용되어 만들어진 결과값은
실행할 때마다 달라진다.
'. Java의 정석' 카테고리의 다른 글
[Java] 배열의 활용 : 정렬하기(sort) (0) | 2021.07.14 |
---|---|
[Java] 배열의 활용 : 섞기, 셔플(shuffle) (0) | 2021.07.14 |
[Java] 배열의 활용 : 최대값(max)과 최소값(min) (0) | 2021.07.13 |
[Java] 배열의 활용 : 총합(sum)과 평균(average, avg) (0) | 2021.07.13 |
[Java] 배열의 복사 : System.arraycopy() 이용 (0) | 2021.07.13 |