[Java] Random 클래스

Henson·2024년 11월 1일

Java

목록 보기
8/22
post-thumbnail

Random 클래스

랜덤의 경우 Math.random() 을 사용해도 되지만 Random 클래스를 사용하면 더욱 다양한 랜덤값을 구할 수 있다.
참고로 Math.random()도 내부에서는 Random 클래스를 사용한다.

참고로 Random 클래스는 java.util 패키지 소속이다.

주요 메서드

  • random.nextInt() : 랜덤 int 값을 반환한다.
  • nextDouble() : 0.0d ~ 1.0d 사이의 랜덤 double 값을 반환한다.
  • nextBoolean() : 랜덤 boolean 값을 반환한다.
  • nextInt(int bound) : 0 ~ bound 미만의 숫자를 랜덤으로 반환한다. 예를 들어서 3을 입력하면 0, 1, 2 를 반환한다.
    • 1부터 특정 숫자의 int 범위를 구하는 경우 nextInt(int bound) 의 결과에 +1을 하면 된다.

씨드 - Seed

랜덤은 내부에서 씨드(Seed)값을 사용해서 랜덤 값을 구한다. 그런데 이 씨드 값이 같으면 항상 같은 결과가 출력된다.

  • new Random() : 생성자를 비워두면 내부에서 System.nanoTime() 에 여러가지 복잡한 알고리즘을 섞어서 씨드값을 생성한다. 따라서 반복 실행해도 결과가 항상 달라진다.
  • new Random(int seed) : 생성자에 씨드 값을 직접 전달할 수 있다. 씨드 값이 같으면 여러번 반복 실행해도 실행 결과가 같다. 이렇게 씨드 값을 직접 사용하면 결과 값이 항상 같기 때문에 결과가 달라지는 랜덤 값을 구할 수 없다. 하지만 결과가 고정되기 때문에 테스트 코드 같은 곳에서 같은 결과를 검증할 수 있다.
profile
세계 최고의 개발자가 되고 말겠어.

0개의 댓글