| 
				
				
					|  |  
					|  |  
					
				 
					|  |  
					|   |  
					|  |  
					|  |  
					|  |  
					|  |  
					|  |  
					|  |  
					|  |  
					|  |  
					|  |  
					| 
							
								| 6만원 이상 무료배송 |  
								|  |  
								| 주문하시는 총상품금액의 합계가
 6만원 이상일 경우
 택배비가 무료입니다.
 |  |  
					|  |  
					|  |  |  | 
	
		|  |  
		|  |  
		|  
				
					| [JAVA] Map/HashMap/TreeMap/Hashtable 의 차이점 |  |  
		|  |  
		|  
				
					| 작성자: 
						
							어라
						
						  
						
							작성일: 2009-07-07 09:48  
						
						조회: 28956  
						댓글: 0 |  |  
		|  |  
		| 
				
					| 1. Map Map은 key와 value를 가진 집합이며, 중복을 허용하지 않는다.
 즉, 한개의 key에 한개의 value가 매칭된다.
 java.util 패키지에 여러 집합들을 사용하기 위한 여러 interface와 class 들이 정의되어 있다.
 
 2. HashMap
 HashMap은 Map interface를 implements 한 클래스로서 중복을 허용하지 않는다.
 Map의 특징인 key와 value의 쌍으로 이루어지며, key 또는 value 값으로써 null을 허용한다.
 아래의 예는 HashMap을 사용한 간단한 예제이다.
 public class HashMapTest
 {
 public static void main(String argv[])
 {
 HashMap hm = new HashMap();
 System.out.println(hm.put("aaa", "111"));
 System.out.println(hm.put("bbb", "222"));
 System.out.println(hm.put("aaa", "444"));
 System.out.println(hm.put("ccc", "333"));
 System.out.println(hm.put("ccc", null));
 
 System.out.println("HashMap size : " + hm.size());
 
 Set set = hm.keySet();
 Object []hmKeys = set.toArray();
 for(int i = 0; i < hmKeys.length; i++)
 {
 String key = (String)hmKeys[i];
 System.out.print(key);
 System.out.print(" - ");
 System.out.println((String)hm.get(key));
 }
 }
 }
 /**
 실행:java HashMapTest
 결과:
 null
 null
 111
 null
 333
 HashMap size : 3
 ccc - null
 bbb - 222
 aaa - 444
 */
 
 
 
 3. TreeMap
 TreeMap역시 중복을 허용하지 않으며, key와 value의 쌍으로 이루어져 있다.
 HashMap과 다른 점은 SortedMap을 implements 하였으므로, key 값들에 대한 정렬이 이루어진다는 점이다.
 아래의 예는 TreeMap을 사용하여 각 요소가 몇몇 이나 나왔는지 알아보는 간단한 예제이다.
 import java.util.*;
 
 public class Freq {
 private static final Integer ONE = new Integer(1);
 
 public static void main(String args[]) {
 Map m = new TreeMap();
 
 // Initialize frequency table from command line
 for (int i=0; i < args.length; i++) {
 Integer freq = (Integer) m.get(args[i]);
 m.put(args[i], (freq==null ? ONE :
 new Integer(freq.intValue() + 1)));
 }
 
 System.out.println(m.size()+" distinct words detected:");
 System.out.println(m);
 }
 }
 /**
 실행:java Freq if it is to be it is up to me to delegate
 결과:
 8 distinct words detected:
 {be=1, delegate=1, if=1, is=2, it=2, me=1, to=3, up=1}
 */
 
 
 
 4. Hashtable
 Hashtable Map interface를 implements 한 클래스로서 중복을 허용하지 않는다.
 Map의 특징인 key와 value의 쌍으로 이루어지며, key 또는 value 값으로써 null을 허용하지 않는다.(HashMap과의 차이점)
 아래의 예는 HashTable을 사용한 간단한 예제이다.
 public class HashtableTest
 {
 public static void main(String argv[])
 {
 Hashtable ht = new Hashtable();
 System.out.println(ht.put("aaa", "111"));
 System.out.println(ht.put("bbb", "222"));
 System.out.println(ht.put("aaa", "444"));
 System.out.println(ht.put("ccc", "333"));
 
 System.out.println("Hashtable size : " + ht.size());
 
 System.out.println("aaa value : " + (String)ht.get("aaa");
 
 }
 }
 /**
 실행:java HashMapTest
 결과:
 null
 null
 111
 null
 Hashtable size : 3
 aaa value : 444
 */
 
 
 
 |  |  
		|  |  
		|  |  
		|  |  
		| * 관련 댓글 한말씀 부탁합니다. |  
		|  |  |