ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA 21] 자바 가변 배열 ( Map / 맵 ) ③ Map
    Language/Java 2018. 2. 12. 19:10
    반응형


    3. 특징

    3) Map

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

    (2) ' key 값 ' 은 중복이 되지 않는다.

    (2) ' value 값 ' 은 중복이 허용된다.


    cf) key 값과 value 값의 쌍으로 저장이 된다.


    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
    import java.util.*;
     
    class MapS1{    // Map Study 1
     
        Hashtable ht = new Hashtable();
     
        void in(){
            ht.put(new Integer(10) , "봄");
            ht.put(new Integer(20) , "여름");
            ht.put(new Integer(30) , "가을");
            ht.put(new Integer(40) , "겨울");
     
            ht.put(new Integer(20) , "초여름");     // key 값 중복
            ht.put(new Integer(50) , "봄");        // value 값 중복
        }
     
        void out(){
            Enumeration er = ht.keys();
            while(er.hasMoreElements()){
                Object key = er.nextElement();
                Object value = ht.get(key);
                System.out.println(" key : " + key + " , value : " + value);
            }
        }
     
        public static void main(String[] args){
            MapS1 ms1 = new MapS1();
            ms1.in();
            ms1.out();
        }
    }
     
    cs

    여기서 List 와 Set 과 다르게 

    MaP 의특징적인 것

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

    1. 오름차순 

    2. 내림차순 

    ( 지금은 하지 않았지만 )

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


    2) key 값은 중복이 허용되지 않아서 2번 적은 ( 20 ) 이 늦게 집어 넣은 초여름으로 변한것을 알 수 있다.

    value 값은 중복이 허용되어 봄이 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 MapS2{
     
        Hashtable<Integer , String> ht = new Hashtable<Integer , String>();    // Generic
     
        void in(){
            ht.put(new Integer(10) , "봄");
            ht.put(new Integer(20) , "여름");
            ht.put(new Integer(30) , "가을");
            ht.put(new Integer(40) , "겨울");
        }
     
        void out(){
            Enumeration<Integer> er = ht.keys();
            while(er.hasMoreElements()){
                /*    Integer key = en.nextElement();
                    String value = ht.get(key);        */
                Integer key = er.nextElement();        // Generic
                String value = ht.get(key);            // Generic
                System.out.println(" key : " + key + " , value : " + value);
            }
        }
     
        public static void main(String[] args){
            MapS2 ms2 = new MapS2();
            ms2.in();
            ms2.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
    27
    import java.util.*;
     
    class MapS3{
     
        Hashtable<Integer , String> ht = new Hashtable<Integer , String>();
     
        void in(){
            ht.put(new Integer(10) , "봄");
            ht.put(new Integer(20) , "여름");
            ht.put(new Integer(30) , "가을");
            ht.put(new Integer(40) , "겨울");
        }
     
        void out(){
            Set<Integer> keySet = ht.keySet();
            for(Integer key : keySet){            // Enhanced Loop
                String value = ht.get(key);            
                System.out.println(" key : " + key + " , value : " + value);
            }
        }
     
        public static void main(String[] args){
            MapS3 ms3 = new MapS3();
            ms3.in();
            ms3.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 MapS4{
     
        Hashtable<Integer , String> ht = new Hashtable<Integer , String>();
     
        void in(){
            ht.put(10 , "봄");        // AutoBoxing
            ht.put(20 , "여름");    // ( int → Integer )
            ht.put(30 , "가을");    // JVM 이 자동으로 꾸려준다.
            ht.put(40 , "겨울");
        }
     
        void out(){
            Set<Integer> keySet = ht.keySet();
            for(int key : keySet){    // UnBoxing    ( Integer → int ) JVM 이 자동으로 꺼내준다.
                System.out.println(" key : " + key + " , value : " + ht.get(key));
            }
        }
     
        public static void main(String[] args){
            MapS4 ms4 = new MapS4();
            ms4.in();
            ms4.out();
        }
    }
    cs



    이번 Map 에 대해서는 제가 포스팅을 하면서 ,

    많이 부족하다고 느낀 부분이었던것 같습니다.


    다시 공부 하여 부족한 점에 대해서 차차 수정해 나가겠습니다.


    잘못된 정보에 대해서 언제든지 피드백을 주신다면,

    즉시 배우고 수정하겠습니다.


    잘 부탁드립니다.

    반응형
Designed by Tistory.