아래 내용은 다음을 참고하였음을 미리 밝힙니다.
-> 프로그래밍도서: 자바의정석 



* HashMap 은 Map을 구현한다. key 와 value 를 묶어서 하나의 entry 로 저장한다는 특징을 갖는다. 그리고 hashing 을 사용하기 때문에 많은 양의 데이터를 검색하는데에 뛰어난 성능을 보인다.

key: collection 내의 key 중 유일해야 한다. (중복 허용하지 않음)
value: key에 해당하는 데이터이다. (중복 허용)

※ 만약 중복된 key로 데이터를 삽입할 경우 해당되는 key의 데이터가 나중에 삽입된 데이터로 수정된다. 




* 주요 생성자/메서드와 설명
 

HashMap(int initialCapacity) 

지정된 값을 초기용량으로 하는 HashMap 객체 생성

HashMap(Map m) 주어진 Map에 저장된 모든 요소를 포함하는 MashMap 객체 생성 
void clear() 저장된 모든 객체 삭제
Object clone() 현재 HashMap을 복제하여 반환
boolean containsKey(Object key) 해당하는 key가 있는지 확인
boolean containsValue(Object key) 해당하는 value가 있는지 확인
Set entrySet() 저장된 키와 값을 엔트리(결합)의 형태로 Set에 저장하여 반환
Object get(Object key) 해당하는 키의 값을 반환 
boolean isEmpty() HashMap이 비어 있는지 확인
Set keySet() HashMap에 저장된 모든 키가 저장된 Set을 반환 
Object put(Object key, Object value) HashMap에 키와 값을 저장
void putAll(Map m) Map에 해당하는 모든 요소를 HashMap에 저장
Object remove(Object key) 해당하는 키로 저장된 값을 삭제
int size() 저장된 요소의 개수를 반환
Collection values() 저장된 모든 값을 컬렉션 형태로 반환


import java.util.HashMap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class CollectionMap {
	public static void main(String[] args) {
		// HashMap 에 데이터 타입을 제한한다. key -> String, value -> Integer 로
		HashMap hash = new HashMap();
		
		// key, data 저장
		hash.put("one", 1); // ※ jdk1.5 이후 부터는 new Integer(1) 처럼 하지 않고 1로 하면 오토박싱 됨.
		hash.put("eight", 8);
		hash.put("two", 2);
		hash.put("three", 3);
		hash.put("five", 5);
		hash.put("four", 4);
		hash.put("nine", 9);
		hash.put("six", 6);
		hash.put("seven", 7);
		
		// key 에 해당하는 value 출력
		System.out.println(hash.get("one"));
		System.out.println(hash.get("two"));
		
		// 저장된 모든 value 출력
		System.out.println(hash.values());
		
		// hash 의 크기 출력
		System.out.println(hash.size());
		
		/*
		 * 다음을 간략히 한 것임
		 * Set s = hash.keySet();
		 * Iterator it = s.iterator();
		 */
		
		// 방법 1
		Iterator it = hash.keySet().iterator();
		
		while(it.hasNext()) {
			String key = it.next();
			System.out.println(key + " : " + hash.get(key));
		}	
		
		
		// 방법 2
		Set> set = hash.entrySet();

		for(Map.Entry me : set) {
			System.out.println(me.getKey() + " : " + me.getValue());
		}
		
		// 방법 3
		Set set2 = hash.keySet();
		
		for(String key : set2) {
			System.out.println(key + " : " + hash.get(key));
		} 
		
		
	}
}


* 실행 결과 화면


신고
posted by 컴맹 쪼재