-
[JAVA 21] 자바 가변 배열 ( Map / 맵 ) ③ MapLanguage/Java 2018. 2. 12. 19:10반응형
3. 특징
3) Map
(1) ' 순서 ' 가 보존되지 않는다.
(2) ' key 값 ' 은 중복이 되지 않는다.
(2) ' value 값 ' 은 중복이 허용된다.
cf) key 값과 value 값의 쌍으로 저장이 된다.
ex) 수학에서의 일대일 대응
① Generic
② Enhanced Loop ( 강화된 반복분 )
③ Boxing ( AutoBoxing / UnBoxing )
1234567891011121314151617181920212223242526272829303132import java.util.*;class MapS1{ // Map Study 1Hashtable 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
123456789101112131415161718192021222324252627282930import java.util.*;class MapS2{Hashtable<Integer , String> ht = new Hashtable<Integer , String>(); // Genericvoid 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(); // GenericString value = ht.get(key); // GenericSystem.out.println(" key : " + key + " , value : " + value);}}public static void main(String[] args){MapS2 ms2 = new MapS2();ms2.in();ms2.out();}}cs ② Enhanced Loop ( 강화된 반복분 )
123456789101112131415161718192021222324252627import 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 LoopString 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 )
1234567891011121314151617181920212223242526import java.util.*;class MapS4{Hashtable<Integer , String> ht = new Hashtable<Integer , String>();void in(){ht.put(10 , "봄"); // AutoBoxinght.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 에 대해서는 제가 포스팅을 하면서 ,
많이 부족하다고 느낀 부분이었던것 같습니다.
다시 공부 하여 부족한 점에 대해서 차차 수정해 나가겠습니다.
잘못된 정보에 대해서 언제든지 피드백을 주신다면,
즉시 배우고 수정하겠습니다.
잘 부탁드립니다.
반응형'Language > Java' 카테고리의 다른 글
[JAVA 23] 자바 super ( 슈퍼 ) (0) 2018.02.13 [JAVA 22] 자바 this ( 디스 ) (0) 2018.02.13 [JAVA 20] 자바 가변 배열 ( Collection / 컬렉션) ② Set (2) 2018.02.12 [JAVA 19] 자바 가변 배열 ( Collection / 컬렉션) ① List (1) 2018.02.11 [JAVA 18] 자바 가변 배열 ( Collection / Map 계열 ( 컬렉션 / 맵) ) (0) 2018.02.11