HashMap key/value 성 데이터를 관리의 목적으로 만들어진 Template Class 중 하나 입니다.
HashMap<class Key, class Value> variable; 과 같이 선언 하여 씁니다.
간단히 문자열 "A" ~ "Z" 까지 실제 ASCII 코드값을 매칭 하는 샘플을 만들어 보겠습니다.
package process; import java.util.HashMap; import java.util.Iterator; public class HashMapSample { public static void main(String[] args) throws Exception { HashMap<String, Integer> mapAlphaASCII = new HashMap<String, Integer>(); //값 할당. for (int i = 65; i <= 90; i++) { String sKey; sKey = String.format("%c", i); mapAlphaASCII.put(sKey, Integer.valueOf(i)); } // entrySet을 이용한 접근방법. System.out.println("entrySet 이용한 접근..."); for( HashMap.Entry<String, Integer> item : mapAlphaASCII.entrySet() ) { System.out.println(String.format("Key[%s]=Value[%d]", item.getKey(), item.getValue())); } // keySet을 이용한 접근방법. System.out.println("keySet을 이용한 접근..."); for( String key : mapAlphaASCII.keySet() ) { System.out.println(String.format("Key[%s]=Value[%d]", key, mapAlphaASCII.get(key))); } // Iterator를 이용한 접근방법. System.out.println("Iterator를 이용한 접근..."); Iterator<String> keys = mapAlphaASCII.keySet().iterator(); while( keys.hasNext() ) { String key = keys.next(); System.out.println(String.format("Key[%s]=Value[%d]", key, mapAlphaASCII.get(key))); } } }
코드는 중복값 체크 없이 무조건 삽입 하는 코드 입니다.
멤버를 접근 하는 방법은 entrySet / keySet / Iterator 를 이용하는 방법으로 구현 하였습니다.
코드의 간결성을 위해 보통은 두번째 keySet을 저는 보통 사용합니다.
Key와 Value는 Object 를 상속 받은 객체형 타입이어야 합니다.
HashMap 관련 상세한 인터페이스는 https://cr.openjdk.java.net/~iris/se/11/latestSpec/api/java.base/java/util/HashMap.html 여기서 확인 하실수 있습니다.
제가 여기서 추가로 설명하고자 하는것은 제가 자주 사용하던 패턴과 사용함에 있어 필요로 생각하는 요소들만 정리해서 안내 해드리겠습니다.
a. put : HashMap 에 멤버를 추가 해주는 메소드 입니다.
b. size : HashMap 에 저장된 멤버에 대한 갯수를 리턴해주는 메소드 입니다.
c. clear : HashMap 에 저장된 멤버를 모두 지우는 메소드 입니다.
d. remove : HashMap 에 저장된 멤버중 하나를 지우는 메소드 입니다.
e. keySet : HashMap 의 키셋을 반환 합니다.
f. get : 특정 키에 해당하는 값을 리턴합니다.
위 설명된 항목들을 활용한 샘플 코드를 만들어 보겠습니다.
package process; import java.util.HashMap; import java.util.Iterator; public class HashMapSample2 { public static void main(String[] args) throws Exception { HashMap<String, Integer> mapAlphaASCII = new HashMap<String, Integer>(); //값 할당. for (int i = 65; i <= 90; i++) { String sKey; sKey = String.format("%c", i); mapAlphaASCII.put(sKey, Integer.valueOf(i)); } System.out.println(String.format("mapAlphaASCII Member Count %d", mapAlphaASCII.size())); // keySet을 이용한 멤버 출력.. for( String key : mapAlphaASCII.keySet() ) { System.out.println(String.format("Key[%s]=Value[%d]", key, mapAlphaASCII.get(key))); } // B 값을 찾아 삭제. if (mapAlphaASCII.get("B") != null) { mapAlphaASCII.remove("B"); } else System.out.println(String.format("Not Found B")); System.out.println(String.format("mapAlphaASCII Member Count %d", mapAlphaASCII.size())); //전체 멤버 삭제. mapAlphaASCII.clear(); System.out.println(String.format("mapAlphaASCII Member Count %d", mapAlphaASCII.size())); } }
HashMap 의 기능은 제가 링크를 걸은 곳에서 더 많은 기능을 확인 하실수 있습니다.
댓글 없음:
댓글 쓰기