[Java] - Set 컬렉션 , Map 컬렉션

1. Set 컬렉션

List 컬렉션은 객체의 저장 순서를 유지한다. (인덱스 존재)

하지만 Set 컬렉션은 저장 순서가 유지되지 않는다 (인덱스가 없음)

 

Set 컬렉션은 수학의 집합과 비슷하며 순서와 상관이 없고 중복이 허용되지 않으며 다음과 같이 선언할 수 있다.

기본적으로 사용되는 HashSet에 대해서 알아본다.

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
package Set;
import java.util.*;
 
public class Set_exmaple {
 
    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        set.add("a");
        set.add("a");
        set.add("b");
        set.add("c");
        Iterator<String> it = set.iterator();
        while(it.hasNext()) {
            String ele = it.next();
            System.out.println(ele);
        }
        
        //향상된 for문으로 출력
        System.out.println("---------------");
        set.remove("c");
        it = set.iterator();
        for(String ele : set) {
            System.out.println(ele);
        }
    }
    
 
}
 
cs

 

위의 Set 타입의 객체은 set 변수에 a를 두번 add했지만

중복을 허용하지 않기 때문에 아래의 출력결과를 보면 한번만 출력되는 것을 확인 할 수 있다.

 

 

Map 컬렉션

Map 컬렉션은 파이썬의 딕셔너리와 동일한 데이터 컬렉션으로 Key, Value로 구성된 객체를 저장하는 구조이다.

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
package HashMap;
 
import java.util.HashMap;
import java.util.Map;
import java.util.*;
 
public class HashMap_example {
 
    public static void main(String[] args) {
        // Hash map 객체생성
        Map map = new HashMap();
        
        
        // Hash map 객체에 요소 추가
        map.put("이름""홍길동");
        map.put("나이"15);
        map.put("이메일""hong@naver.com");
        System.out.println(map.size());
        
        //Map 객체에 접근 - How to Accesse the Map object's value
        System.out.println(map.get("이름"));
        
        System.out.println("----------map객체 전체출력---------");
        Set keys = map.keySet(); // map의 key만 set 데이터타입으로 추출
        System.out.println(keys);
        Iterator iter = keys.iterator();
        
        while(iter.hasNext()) {
            String k = (String) iter.next();
            System.out.printf("키 :" ++"\t\t");
            System.out.println("값:" + map.get(k));
        }
        
 
    }
 
}
 
cs