CODEDRAGON ㆍDevelopment/Java
Lotto 프로그램 - HashSet
중복값을 허용하지 않는 HashSet을 이용하여 로또 프로그램 만들기
소스 코드
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
public class HashSetLotto {
public static void main(String[] args) {
// HashSet 객체 생성
// HashSet <Integer> set = new HashSet<Integer>();
Set <Integer> set = new HashSet<Integer>();
//초기에 Set타입으로 객체생성하여 데이터를 삽입함
while(set.size() < 6){
// 1~45난수 발생
// hs.add( (int)(Math.random()*45+1) );
int num = (int)(Math.random()*45+1);
set.add(new
}
System.out.println(set); //[32, 41, 25, 26, 42, 12]
//정렬하기
// Collections.sort(set);
//ERROR: The method sort(List<T>) in the type Collections is not applicable for the arguments (HashSet<Integer>)
//Collections.sort는 리스트타입이여서 set타입을 리스트 타입으로 반들어줘야 합니다.
//Set -> ArrayList(Collection) -> List (변환방법1)
//Set은 정렬을 못하므로 List타입으로 변환
// List<Integer> list = new ArrayList<Integer>(set);
//Set -> LinkedList(Collection) -> List (변환방법2)
//LinkedList생성자를 통해 HashSet에 저장된 객체들을 LinkedList에 담아 List타입으로 변환합니다.
List<Integer> list = new LinkedList<Integer>(set); // LinkedList(Collection c)
System.out.println(list); //[32, 41, 25, 26, 42, 12]
//번호를 크기순으로 정렬하기 위해 Collections클래스의 sort()메소드로 정렬
//sort(List list)는 인자로 List인터페이스 타입만 허용하므로 Set을 List로 변환한 list
Collections.sort(list);
//정렬 후 로또번호 결과
//정렬기준은 컬렉션에 저장된 객체가 Integer이므로 Integer클래스에 정의된 기본정렬이 사용되었습니다.
System.out.println("\nlotto : " + list); //lotto : [12, 25, 26, 32, 41, 42]
}
}
/*
[24, 40, 8, 10, 13, 31]
[24, 40, 8, 10, 13, 31]
lotto : [8, 10, 13, 24, 31, 40]
*/ |
'Development > Java' 카테고리의 다른 글
Weka - Attribute data type (0) | 2019.12.24 |
---|---|
ERROR-Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. 해결방법 (0) | 2019.12.19 |
LAB - 다이아몬드별, 모래시계 출력하기 (0) | 2019.12.12 |
Machine Learning Open Source Software (MLOSS) (0) | 2019.12.12 |
Apache Mahout(아파치 머하웃) (0) | 2019.12.12 |