728x90
[ 랜덤 클래스 (Random Class ]
- 난수 발생 관련 함수
- Math 클래스의 난수 생성과 동일한 기능의 메소드를 포함하여, 다른 여러 메소드 보유
- 랜덤 클래스 인스턴스 생성 후 사용 가능
[ 생성자 ]
- () : 무작위 난수 생성
- (long seed) : 매개변수의 값을 기초로 난수를 발생시킴
seed값을 주면 기초값이 생기기 때문에 다른 인스턴스에서도 동일한 난수가 계속 생성됩니다. 따라서 실제로는 사용되지 않으며 같은 환경에서 여러 번 테스트를 할 때 사용됩니다. C언어에서 난수 생성 기초값을 시간으로 하는 것을 보아 Java도 비슷할 것으로 유추됩니다. 아래와 같이 seed값을 지정해줄 경우 같은 seed값을 가진 인스턴스의 난수는 항상 동일합니다.
package study.first;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random r1 = new Random(10);
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
System.out.println();
Random r2 = new Random(10);
System.out.print(r2.nextInt(10) + " ");
System.out.print(r2.nextInt(10) + " ");
System.out.print(r2.nextInt(10) + " ");
System.out.print(r2.nextInt(10) + " ");
System.out.print(r2.nextInt(10) + " ");
System.out.print(r2.nextInt(10) + " ");
}
}
[ nextBoolean() ]
- true / fasle 난수를 boolean타입으로 반환
package study.first;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random r1 = new Random();
System.out.print(r1.nextBoolean() + " ");
System.out.print(r1.nextBoolean() + " ");
System.out.print(r1.nextBoolean() + " ");
}
}
[ nextInt() ]
- int 범위에서 난수 생성 및 int 타입으로 반환
- -2147483648 ~ 2147483647
- argument로 양의 정수를 줄 경우 "0 <= 난수 < argument" 범위의 난수 생성
package study.first;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random r1 = new Random();
System.out.print(r1.nextInt() + " ");
System.out.print(r1.nextInt() + " ");
System.out.print(r1.nextInt() + " ");
}
}
package study.first;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random r1 = new Random();
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
System.out.print(r1.nextInt(10) + " ");
}
}
[ nextDouble ]
- 0~1.0 (1.0 미포함) 범위의 난수 생성 및 double 타입으로 반환
- Math 클래스의 random() 메소드와 같은 범위
package study.first;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random r1 = new Random();
System.out.print(r1.nextDouble() + " ");
System.out.print(r1.nextDouble() + " ");
System.out.print(r1.nextDouble() + " ");
}
}
[ nextLong() ]
- long 범위의 난수 생성 및 long 타입 반환
- -9223372036854775808 ~ 9223372036854775807
package study.first;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random r1 = new Random();
System.out.print(r1.nextLong() + " ");
System.out.print(r1.nextLong() + " ");
System.out.print(r1.nextLong() + " ");
}
}
[ setSeed() ]
- Seed값(기본값) 설정을 위한 setter
- 인스턴스 생성시에 넣거나 중간에 추가 또는 수정 가능
728x90
'▸JAVA > 라이브러리(API)' 카테고리의 다른 글
java.util.ArrayList 주요 메소드 [1/1] (2) | 2019.12.10 |
---|---|
java.util.regex 주요 메소드 [1/1] (2) | 2019.12.10 |
java.util.StringTokenizer 주요 메소드 [1/1] (2) | 2019.12.10 |
java.lang.Enum (열거형) 주요 메소드 [1/1] (2) | 2019.12.10 |
java.lang.Math (수학계산) 주요 메소드 [1/1] (2) | 2019.12.10 |
댓글