자바 랜덤함수를 사용하는 방법은 2가지가 있습니다.
Random 클래스와 Math 클래스를 각각 사용해서 random value 를 생성하는 방법에 대해 설명 드리겠습니다.
1. Java.util.Random
Random 클래스의 객체를 생성하면 다음과 같이 다양한 메소드를 사용하여 원하는 타입의 random value 를 생성할 수 있습니다.
그 중에서도 가장 많이 사용되는 nextInt() 메소드는 파라미터를 사용해서
원하는 범위내의 양수 값을 (범위 : 0 ~ 파라미터-1) 가져올 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13 |
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
Random random = new Random();
System.out.println(random.nextBoolean()); // true or false
System.out.println(random.nextFloat()); // range : 0.0f ~ 1.0f(exclusive)
System.out.println(random.nextInt()); // all 2^32 possible int values
System.out.println(random.nextInt(100)); // range : 0 ~ 99
}
}
|
cs |
<결과>
false
0.2699461
2087110484
73
2. Java.util.Math
Math 클래스는 수학적 연산과 관련된 메소드들을 제공하는 클래스로
random() 메소드를 사용하여 0.0 <= double value < 1.0 의 값을 생성할 수 있습니다.
random() 메소드가 double 타입을 리턴하기 때문에 타입 캐스팅(int)를 사용해서 정수형으로 변환하여 사용할 수 있으며, (int)(Math.random() * 최대값) + 최소값 의 연산을 통해 최소값 ~ 최대값의 범위 지정도 가능합니다. (실제적으로는 (int)(Math.random() * (최대값 - 최소값 + 1)) + 최소값 입니다.)
예제에서는 1 ~ 100 사이의 random value 를 출력하게 됩니다.
1
2
3
4
5
6
7
8 |
public class RandomTest {
public static void main(String[] args) {
// range : 0.0 ~ 1.0(exclusive)
double randomValue = Math.random();
int intValue = (int)(randomValue * 100) + 1;
System.out.println(intValue);
}
} |
cs |
<결과>
75
'IT > Java' 카테고리의 다른 글
ArrayList 깊은 복사(deep copy) vs 얕은 복사(shallow copy) (2) | 2015.03.27 |
---|---|
자바 랜덤 문자열 함수(RandomString) (0) | 2015.03.25 |
자바 문자열 비교 - equals(), equalsIgnoreCase() (0) | 2015.03.17 |
BigInteger 클래스 - 아주 큰 정수 표현하기 (0) | 2015.03.14 |
BigDecimal 클래스 - 오차없이 실수 표현하기 (0) | 2015.03.13 |