안녕하세요.
Cobot 개발자 입니다.
님의 이벤트에 참가하기 위해 소소하게 코드를 짜봤습니다~
package test;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Set;
public class 번호추첨기 {
public static void 랜덤숫자출력하기( int 랜덤범위, int 출력갯수){
Set<Integer> 랜덤저장소 = new LinkedHashSet<Integer>(출력갯수);
for( Random 랜덤유틸 = new Random() ; 랜덤저장소.size() < 출력갯수 && 랜덤저장소.size() < 랜덤범위 ; )
랜덤저장소.add(1 + 랜덤유틸.nextInt( 랜덤범위 ));
Iterator<Integer> 저장소탐색기 = 랜덤저장소.iterator();
for(int 인덱스 = 1 ; 저장소탐색기.hasNext() ; 인덱스++)
System.out.println( 인덱스 + "번째 생성된 수는 " + 저장소탐색기.next() + "입니다." );
}
public static void main(String[] args) {
번호추첨기.랜덤숫자출력하기(20, 3);
}
}
원리는 간단합니다.
자바가 기본적으로 제공하는 LinkedHashMap 변경LinkedHashSet 이라는 녀석은
넣은 순서대로 데이터를 쌓으면서 key는 해시값을 사용하여 단일성을 유지하는 놈입니다.
따라서 key에 랜덤 숫자를 넣고 사이즈만 체크하는 방식을 썼습니다.
그리고 저위에 코드는 수행 가능한 코드이며
일부러 한글 변수명을 써보았습니다.
자바는 한글 변수명, 함수명을 쓸수 있답니다.
평가는 님이 잘해주시겠죵? ㅎㅎ
읽어주셔서 감사합니다~