▸JAVA/라이브러리(API)

java.util.Random 주요 메소드 [1/1]

코데방 2019. 12. 10.
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

댓글

💲 추천 글