반응형
Math.random()
double value = Math.random(); // 0.0 이상 1 미만의 랜덤값 생성. seed는 현재시간으로 설정됨
Random
Random random = new Random(); // 생성자 파라미터가 없을 경우 현재 시간으로 seed 설정
double value1 = random.nextDouble(); // 0.0 이상 1.0 미만의 랜덤값 생성
boolean value2 = random.nextBoolean(); // true or false 중의 랜덤값 생성
int value3 = random.nextInt(); // 정수 범위 내에서 랜덤값 생성
int value4 = random.nextInt(5); // 0 이상, 파라미터 미만의 랜덤값 생성
byte[] value5 = new byte[5]; // 사이즈 5인 byte 배열에 랜덤값 생성
random.nextBytes(value5);
Random의 seed
// 생성자 파라미터로 seed 설정 가능.
// seed가 동일하면 동일한 난수 테이블을 생성하기 때문에 일정한 규칙의 랜덤값을 생성.
Random random1 = new Random(1L);
Random random2 = new Random(1L);
// value1 == value2
int value1 = random1.nextInt();
int value2 = random2.nextInt();
랜덤 문자열 생성
Random random = new Random();
int size = 10;
char[] allowChars = "abcdeABCDE12345".toCharArray();
String randomString = IntStream.range(0, size)
.mapToObj(i -> String.valueOf(allowChars[random.nextInt(allowChars.length)]))
.collect(Collectors.joining());
반응형
'Development > Java' 카테고리의 다른 글
[Java] Java 소스 파일 컴파일하여 Class 객체로 로딩하기 (0) | 2023.05.27 |
---|---|
[Java] Mockito (0) | 2022.06.23 |
[Java] Cipher(RSA, AES) (0) | 2022.04.27 |
[Java] Base64 (0) | 2022.04.26 |
[Java] Singleton Pattern (0) | 2022.01.07 |