반응형

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

+ Recent posts