2014년 8월 16일 토요일

[Java] 중복없는 랜덤발생기(Deduplicated Random Generator)



중복없는 랜덤발생기

(DeduplicatedRandomGenerator)



1) 배열을 리스트로 바꿔준다. ( Arrays.asList )

2) 랜덤 숫자를 생성한다.
3) 랜덤 숫자를 통하여 리스트의 요소를 확인한다. ( get )
4) 랜덤 숫자를 통하여 리스트의 확인한 요소를 제거한다. ( remove )

5) 반복하다 보면 리스트 안에 요소들이 없다.
6) 필요시 재할당을 해주면 된다.




활용예제


public class RandomGenertor {


        public static void main(String[] args) {


                String[] myArray = new String[] { "a", "b", "c", "d", "e", "f", "g" };


                List<String> myRandom = new ArrayList(Arrays.asList(myArray));

                // array to arrayList

                for (int i = 0; i < myArray.length; i++) {


                        int randomNum = (int) (Math.random() * myRandom.size());


                        System.out.println("get : " + 

                                                                                myRandom.get(randomNum));

                        System.out.println("remove : " +

                                                                                myRandom.remove(randomNum));
                        // deduplication

                        System.out.println(myRandom);


                        if (myRandom.size() == 0) {


                                System.out.println("nothing");

                                // need to reassignment
                        }
                }
        }
}



댓글 없음:

댓글 쓰기