본문 바로가기
핫뉴스 리뷰

Java Collection 정리(Map,HashMap)

by 디마드 2009. 12. 17.

이클립스로  java 1.4의 형태로 Map을 다음과 같이 정의하면
key, value와 관련된 권고사항이 나온다.

// <= Java 1.4
HashMap map = new HashMap();
map.put(“apple”, “red”);
map.put(“banana”, “yellow”);
map.put(“grape”, “purple”);

Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
    Entry entry = (Entry) iter.next();
    System.out.println(“key : ” + entry.getKey() + ” / value : “ + entry.getValue());
}


1.5버전으로 Map을 정의하고 싶었지만 이해가 잘 되지 않아서 이전 버전으로 사용하다가
for each의 구문이 필요해서 웹사이트를 뒤지다 보니 아래의 좋은 예가 발견되었다.
그래서 1.5의  Map정의도 자연스럽게 이해가 되었다.

// >= Java 1.5
Map<String, String> mp = new HashMap<String, String>();
mp.put(“apple”, “red”);
mp.put(“banana”, “yellow”);
mp.put(“grape”, “purple”);

for (Map.Entry<String, String> entry: mp.entrySet()) {
    System.out.println(“key : ” + entry.getKey() + ” / value : “ + entry.getValue());
}


* 설명
Map<String, String> mp = new HashMap<String, String>();
Map의  "<>"속에 들어가는 것은 Key와 Value값이다.
즉, Map속의 데이터를 찾을 때 Key는 String형태이고, 그 값 또한 String이란 의미이다.

이런식으로 정의하게 되면 다음과 같은 장점이 있다.
1.4에서는 Map의 데이터를 꺼내올때마다 적절하게 타입을 지정해서 컨버팅해줘야먄 했다.
왜냐면, Map의 값은 항상 Object 였기  때문이었다. 그래서 아래와 같은 타입지정이 필요했다.

HashMap map = new HashMap();
map.put(“apple”, “red”);
String tmp = (String)map.get("apple");

1.5식으로 코딩하게 되면 미리 타입을 지정하기 때문에 그냥 사용할 수 있는 편리함이 있다.

반응형

댓글