[Java] 배열에서 랜덤 값 뽑기, 3가지 방법
May 15, 2024
배열의 요소들 중에 랜덤으로 하나의 값을 추출하는 방법에 대해서 알아보겠습니다.
1. Random()을 이용한 방법
Random.nextInt(length)
는 0에서 length 미만의 숫자들 중에 하나를 랜덤으로 리턴합니다.
따라서, 배열 길이 범위 내에서 무작위로 index를 뽑고, 그 index로 배열 값을 가져올 수 있습니다.
random.nextInt(array.length)
: 0 ~ (length - 1) 범위의 무작위 값 뽑음
import java.util.Random;
public class Example {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
// 0~4 숫자 중, 랜덤 index를 가져와서 배열 값 가져오기
Random random = new Random();
int randomIndex = random.nextInt(array.length);
int randomValue = array[randomIndex];
System.out.println("Random value: " + randomValue);
}
}
Output:
Random value: 5
2. Math.random()을 이용한 방법
Math.random()
은 0에서 1사이의 무작위 난수를 뽑습니다. 여기에 배열 길이를 곱하면 0에서 배열 길이 사이의 난수가 생성됩니다.
이것을 index로 사용하여 랜덤 배열 값을 가져올 수 있습니다.
Math.random() * array.length
: 0 ~ 4 범위의 랜덤 index 생성
public class Example {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
// 0~4 숫자 중, 랜덤 index를 가져와서 배열 값 가져오기
int randomIndex = (int) (Math.random() * array.length);
int randomValue = array[randomIndex];
System.out.println("Random value: " + randomValue);
}
}
Output:
Random value: 3
3. ThreadLocalRandom을 이용한 방법
ThreadLocalRandom는 Java 7에서 사용 가능하며, nextInt(n)
은 0에서 n사이의 무작위 난수를 생성합니다. 이것으로 랜덤 배열 값을 얻을 수 있습니다.
ThreadLocalRandom.current().nextInt(array.length)
: 0~4 범위의 무작위 난수 생성
import java.util.concurrent.ThreadLocalRandom;
public class Example {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
// 0~4 숫자 중, 랜덤 index를 가져와서 배열 값 가져오기
int randomIndex = ThreadLocalRandom.current().nextInt(array.length);
int randomValue = array[randomIndex];
System.out.println("Random value: " + randomValue);
}
}
Output:
Random value: 1