Language/Java

[JAVA 20] 자바 가변 배열 ( Collection / 컬렉션) ② Set

reifier.tistory.com 으로 이전하였습니다. 2018. 2. 12. 18:33
반응형


3. 특징

2) Set

(1) ' 순서 ' 가 보존되지 않는다.

(2) ' 중복 ' 이 허용되지 않는다.

ex) 수학에서의 집합


① Generic

② Enhanced Loop ( 강화된 반복분 )

③ Boxing ( AutoBoxing / UnBoxing )



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
import java.util.*;
 
class SetS1{    // Set Study 1
 
    TreeSet ts = new TreeSet();
 
    void in(){
        ts.add("봄");
        ts.add("여름");
        ts.add("가을");
        ts.add("겨울");
        ts.add("여름");
    }
 
    void out1(){
        Iterator iter = ts.iterator();                // 오름차순
        while(iter.hasNext()){
            Object obj = iter.next();
            String season = (String)obj;
            System.out.println("1. season : " + season);
        }
    }
 
    void out2(){
        Iterator iter = ts.descendingIterator();    // 내림차순
        while(iter.hasNext()){
            Object obj = iter.next();
            String season = (String)obj;
            System.out.println("2. season : " + season);
        }
    }
 
    public static void main(String[] args){
        SetS1 ss1 = new SetS1();
        ss1.in();
        ss1.out1();
        System.out.println("");
        ss1.out2();
    }
}
cs


여기서 

특징적인 것

1) ' 순서 ' 가 보존되지 않고 , 

1. 오름차순 

2. 내림차순 

으로 정렬을 시킬 수 있다는 것이다.


2) 그리고 중복이 허용되지 않는다

최근에 입력된 데이터가 이전에 입력된 데이터를 덮어 씐다.



① Generic

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
import java.util.*;
 
class SetS2{
 
    TreeSet<String> ts = new TreeSet<String>();    // Generic (jdk 5.0 이상)
 
    void in(){
        ts.add("봄");
        ts.add("여름");
        ts.add("가을");
        ts.add("겨울");
        ts.add("여름");
    }
 
    void out(){
        Iterator<String> iter = ts.iterator();    // 오름차순
        while(iter.hasNext()){
            /*  Object obj = iter.next();        // Generic
                String season = (String)obj;  */
            String season = iter.next();
            System.out.println(" season : " + season);
        }
    }
 
    public static void main(String[] args){
        SetS2 ss2 = new SetS2();
        ss2.in();
        ss2.out();
    }
}
cs



② Enhanced Loop ( 강화된 반복분 )



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
import java.util.*;
 
class SetS3{
 
    TreeSet<String> ts = new TreeSet<String>();
 
    void in(){
        ts.add("봄");
        ts.add("여름");
        ts.add("가을");
        ts.add("겨울");
        ts.add("여름");
    }
 
    void out(){
        for(String season : ts){    // Enhanced Loop
            System.out.println(" season : " + season);
        }
    }
 
    public static void main(String[] args){
        SetS3 ss3 = new SetS3();
        ss3.in();
        ss3.out();
    }
}

cs




③ Boxing ( AutoBoxing / UnBoxing )


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
import java.util.*;
 
class SetS4{
 
    TreeSet<Integer> ts = new TreeSet<Integer>();
 
    void in(){
        ts.add(1);            // AutoBoxing
        ts.add(2);
        ts.add(3);
        ts.add(4);
        ts.add(5);
    }
    
    void out(){
        for(int i : ts){    // UnBoxing
            System.out.println(" i : " + i);
        }
    }
 
    public static void main(String[] args){
        SetS4 ss4 = new SetS4();
        ss4.in();
        ss4.out();
    }
}
cs


반응형