(1) HashMap 사용하기
- Key와 Value를 하나의 쌍으로 저장되는 구조이며 저장되는Value와 Key가 null을 허용합니다.
- 하지만 키의 중복은 허용하지 않으므로 null을 가지는 Key가 2개일 수는 없습니다.
- 동기화가 포함되지 않았으므로 Multi-Thread환경에서의 구현이 아니라면 Hashtable에
비해서 처리 속도가 빠른 장점을 가지고 있습니다.
(2) HashMap 메소드 요약
(3) Sample Code
i) 간단한 HashMap 코드
03 |
import java.util.HashMap; |
05 |
public class HashMapExample1 { |
06 |
public static void main(String[] args) { |
07 |
HashMap<String, Integer > map = new HashMap<String, Integer >(); |
09 |
map.put( "해리" , new Integer( 10 )); |
10 |
map.put( "해르미온느" , new Integer( 100 )); |
11 |
map.put( "론" , new Integer( 85 )); |
12 |
map.put( "드레이코" , new Integer( 93 )); |
13 |
map.put( "네빌" , new Integer( 70 )); |
14 |
map.put( "해르미온느" , new Integer( 100 )); |
15 |
map.put( null , new Integer( 50 )); |
18 |
System.out.println(map); |
20 |
Integer num = map.get( "해르미온느" ); |
21 |
System.out.println( "해르미온느의 성적은? " +num); |
24 |
System.out.println( "null의 성적은? " +num); |
<< 출력 결과 >>
해르미온느의 성적은? 100
ii) HashMap에서 key, value추출해보기
03 |
import java.util.HashMap; |
04 |
import java.util.Iterator; |
08 |
public static void main(String[] args) { |
09 |
String[] msg = { "Berlin" , "Paris" , "Seoul" , "New York" , "London" }; |
11 |
HashMap<Integer,String> map = new HashMap<Integer,String>(); |
13 |
for ( int i= 0 ; i < msg.length; i++) |
16 |
System.out.println(map); |
22 |
Iterator<Integer> keys2 = map.keySet().iterator(); |
24 |
while (keys2.hasNext()){ |
25 |
Integer key = keys2.next(); |
26 |
System.out.print( "key: " +key); |
27 |
System.out.print( ", value: " +map.get(key)+ '\n' ); |
<< 출력 결과 >>
{0=Berlin, 1=Paris, 2=Seoul, 3=New York, 4=London}
key: 0, value: Berlin
key: 1, value: Paris
key: 2, value: Seoul
key: 3, value: New York
key: 4, value: London
iii) 간단한 Hashtable 예제
05 |
public class HashtableTest { |
06 |
public static void main(String[] args) { |
08 |
Hashtable<String, Double > ht = new Hashtable<String, Double >(); |
17 |
System.out.println(ht); |
19 |
Scanner input = new Scanner(System.in); |
20 |
System.out.print( "# 이름을 입력하세요 >> " ); |
21 |
String key = input.nextLine(); |
23 |
double height = ht.get(key); |
24 |
System.out.println(key+ "의 신장 : " +height); |
26 |
System.out.println( "\n이름\t 신장" ); |
27 |
System.out.println( "--------------------" ); |
29 |
Set<String> set = ht.keySet(); |
30 |
for (String item : set){ |
31 |
height = ht.get(item); |
32 |
System.out.println(item+ " \t" +height); |
<< 출력 결과 >>
{김형중=182.5, 구준표=187.2, 금잔디=163.6, 김범=180.3}
# 이름을 입력하세요 >> 금잔디
금잔디의 신장 : 163.6
이름 신장
--------------------
김형중 182.5
구준표 187.2
금잔디 163.6
김범 180.3