배열의 요소들 중에 랜덤으로 하나의 값을 추출하는 방법에 대해서 알아보겠습니다.

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