본문 바로가기

카테고리 없음

set 인터페이스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//set test
 
package Day_15;
 
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
 
public class Day15Ex01 {
 
    public static void main(String[] args) {
        //set을 사용하기 위한 set선언. set 자체는 인터페이스다
        
        // Key도 없고 index도 없는 Set구조
        // Value의 중복이 없다.
        
        // <> 제네릭. 클래스를 만들때 오브잭트 형식으로 만들 수 있다.
        // 단, 제네릭으로 지정해주면 지정된 타입으로만 컬랙선에 담는다. 
        // 사용될 타입을 고정시킨다.
        Set<String> set = new HashSet<>();
        set.add("오징어");
        set.add("꼴뚜기");
        set.add("대구");
        set.add("명태");
        set.add("거북이");
        set.add("명태");
        // 같은걸 넣으면 크기가 추가되지 않는다. 
        
        System.out.println("set의 크기 : "+set.size());
        // 열거자로 "반환"한다. 열거자 = Iterator
//        Iterator<String> iterator = set.iterator();
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
        
        // iterator가 아닌 배열로 "변환"해서 하기
        // 1) 배열로 변환하기 위해 변환할 배열 필요
        //제네릭으로 String
        // set에 있는 걸 그대로 옮겨담을거니까 set의 size를 그대로 배열 선언
        String[] arr = new String[set.size()];  
        set.toArray(arr); // toArrayT[]제네릭으로, 위에서 선언해준 걸 사용
        for(int i = 0; i<arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
 
}
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//set을 이용해서 lotto번호 생성기를 만들자
// lotto는 set타입으로 만든다. 
// 1 ~ 6 까지의 숫자를 넣어서 테스트하고 1 ~ 45로 변경
package Day_15;
 
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
 
public class Ex01_lotto {
 
    public static void main(String[] args) {
    Set<Integer> lotto = new HashSet<>();
 
    Random random = new Random();
    
    
    while(lotto.size()<6) {// 초기값, 증감식 x
        lotto.add(random.nextInt(6));
        System.out.println(lotto); // 중복값이 나오면 lotto.size가 증가하지 않는다
    
    }
    //반복문으로 lotto.size();
    // 같은 값은 안나오니까 다른 값이 나오게하려면  , 
    
    Integer[] lottoArr = new Integer[lotto.size()];
    lotto.toArray(lottoArr);
    for(int i = 0; i<lottoArr.length; i++){
        System.out.println("오늘의 lotto 번호는: " + lottoArr[i] );
        }
    }
}
 
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package Day_15;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
 
public class Ex01_lotto2 {
 
    public static void main(String[] args) {
        Set<Integer> lotto = new HashSet<> ();
        Random random = new Random();
        //lotto.size는 lotto.add가 증가될때마다 증가한다.
        
        while(lotto.size()<6) {
            lotto.add(1 + random.nextInt(45)); // 0~ 5Rkwl
        }
        //set은 인덱스도 없고 키도 없어서 정렬이 안된다.
        System.out.println(lotto);
    }
}
 
 
cs