본문 바로가기

Programming language/Java

Java - 11 [Random , Collections]

Random class

- 여러형태의 난수를 생성할 때 필요하다.

public class RandomExample {
    public static void main(String[] args)  {
        System.out.println("0.0 ~ 1.0 사이의 난수 1개 발생 : " + Math.random());
        System.out.println("0 ~ 10 사이의 난수 1개 발생 : " + (int)((Math.random()*10000)%10));
        System.out.println("0 ~ 100 사이의 난수 1개 발생 : " + (int)(Math.random()*100));
    }
}

위 코드를 보면 기본적으로 Math.random() 함수는 0.0에서 1.0사이의 난수를 발생 시킨다.

 

setSeed(long n) 매개값으로 주어진 종자값이 설정됩니다.
boolean nextBoolean() boolean타입의 난수를 리턴합니다.
double nextDouble() doouble 타입의 난수를 리턴합니다.
int nextInt()  int 타입의 난수를 리턴합니다.
int nextInt(int n) int 타입의 0 ~ 매개값까지의 난수를 리턴합니다.
double nextGaussian() 평균이 0.0이고 표준편차가 1.0인 정규분포 난수를 리턴합니다.

주요 메서드를 이용해서 다양한 형태의 난수를 나타낼수 있습니다.

 

 

Collections

- Stack, Deque, Queue, List, Tree 등의 대표적인 자료구조들을 만들어 생성할 수있게 하는 java의 대표적인

라이브러리 입니다. 

- 이후 java 를 공부하면서 자료구조를 공부하게 될 때 전체적으로 클래스를 공부하고 유용한 컬렉션 메소드만

봅시다.

 

- Collections.copy(list1, list2)

- Collections.reverse(list)

- Collections.shuffle(list)

- Collections.sort(list)

sort함수는 나중에 Comparable<T> 인터페이스의 compareTo 메소드로 원하는 방법으로 객체를 정렬시켜 버리는 괴물이다.

- Collections.swap(list, listIndex1 , listIndex2);

 

Collections 클래스의 swap함수를 이용해서 카드 두개를 섞어 보겠습니다.

    public void shuffle() {
        Random random = new Random();
        int shuffleTimes = random.nextInt(46);
        for (int i = 0; i < shuffleTimes; i++) {
            int shuffleCard1 = random.nextInt(this.cards.size());
            int shuffleCard2 = random.nextInt(this.cards.size());
            Collections.swap(cards, shuffleCard1, shuffleCard2);
        }
    }

Collections 클래스의 shuffle함수를 이용해서 카드 두개를 섞어 보겠습니다.

    public void shuffle() {
        Collections.shuffle(cards);
    }

... 넘 허무함;

 

 

 

 

 

 

'Programming language > Java' 카테고리의 다른 글

Java - 12 [캐스팅]  (0) 2020.10.19
Java - 실무6 [블랙잭]  (0) 2020.10.19
Java - 10 [protected 접근제어자, Object 클래스]  (0) 2020.10.19
Java - 9 [상속, super]  (1) 2020.10.18
Java - 실무5 [MP3플레이어]  (1) 2020.10.18