개요
Java에서 Random().nextInt() 메서드는 Java의 java.util.Random 클래스에 속한 메서드로, 주어진 범위 내에서 임의의 정수를 생성하는 데 사용된다. Random 클래스는 난수 생성기를 제공하여 다양한 난수를 생성할 수 있게 해 준다. nextInt() 메서드의 사용법은 크게 두 가지로 나눌 수 있다.
nextInt() 메서드 - 매개변수 없음
이 메서드는 범위 제한 없이 임의의 정수를 생성한다. 생성된 정수는 int 자료형의 모든 범위 내에서 무작위로 선택된다.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int randomNumber = random.nextInt();
System.out.println(randomNumber);
}
}
nextInt(int bound) 메서드 - 매개변수 있음
이 메서드는 0부터 주어진 bound(경계)의 범위에서 임의의 정수를 생성한다. 이때 생성되는 정수는 0 이상 bound 미만으로, bound 값은 포함되지 않는다.
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int bound = 10;
int randomNumber = random.nextInt(bound);
System.out.println(randomNumber); // 0 이상 10 미만의 정수 출력
}
}
주의 사항
- Random 객체는 필요에 따라 한 번만 생성하여 재사용하는 것이 좋다. 여러 번 생성하면 성능 저하가 발생할 수 있다.
- 임의의 정수는 일반적으로 시드 값을 바탕으로 생성된다. 시드 값을 설정하지 않으면 기본적으로 현재 시간을 시드로 사용한다. 같은 시드 값을 사용하면 동일한 순서의 난수가 생성된다.
import java.util.Random;
public class Main {
public static void main(String[] args) {
long seed = 12345L;
Random random = new Random(seed);
int randomNumber1 = random.nextInt();
int randomNumber2 = random.nextInt();
System.out.println(randomNumber1);
System.out.println(randomNumber2);
}
}
→ 이렇게 하면 항상 같은 시드 값으로 Random 객체를 초기화하기 때문에, 실행할 때마다 동일한 순서의 난수를 생성할 수 있다.
특정 범위의 난수를 생성하고 싶을 때
만약, 11 ~ 99 사이의 난수를 생성하고 싶다면 다음과 같이 코드를 작성하면 된다.
import java.util.Random;
public class Main {
final static int MINIMUM_FACTOR = 11;
final static int MAXIMUM_FACTOR = 99;
public static void main(String[] args) {
Random random = new Random();
// 99 - 11 + 1 = 89
// bound 값을 포함되지 않으므로 0 ~ 88 사이의 난수가 생성
// 여기에 MINIMUM_FACTOR를 더하면, 최종적으로 11 ~ 99 사이의 난수가 생성
int randomNumber = random.nextInt((MAXIMUM_FACTOR - MINIMUM_FACTOR) + 1) + MINIMUM_FACTOR;
System.out.println(randomNumber);
}
}
반응형