중복없는 랜덤발생기
(DeduplicatedRandomGenerator)
1) 배열을 리스트로 바꿔준다. ( Arrays.asList )
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
}
}
}
}
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
}
}
}
}
댓글 없음:
댓글 쓰기