본문 바로가기

JAVA/#혼공단3기

[혼공자] 5주차 - (선택) 직접 해보는 손코딩 - HashMap

늦었지만 5주차 선택 미션 직접해보는 손코딩, 이름을 키로 점수로 값으로 저장하기이다.

Map 컬렉션 중 HashMap 사용 방법에 대해서 직접 코딩을 해보는 미션이다.

실행코드 (HashMapExample.java)

package chapt13sec01.exam06;

import java.util.*;

public class HashMapExample {

	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<String, Integer>();
		
		map.put("신용권", 85);
		map.put("홍길동", 90);
		map.put("동장군", 80);
		map.put("홍길동", 95);	// "홍길동" 키가 같기 때문에 마지막에 입력한 값으로 대체
		System.out.println("총 Entry 수: " + map.size());
		
		// 객체 찾기
		System.out.println("\t 홍길동: " + map.get("홍길동"));
		System.out.println();
		
		// 객체를 하나씩 처리
		Set<String> keySet = map.keySet();
		Iterator<String> keyIterator = keySet.iterator();
		while (keyIterator.hasNext()) {
			String key = keyIterator.next();
			Integer value = map.get(key);
			System.out.println("\t" + key + " : " + value);
		}
		System.out.println();
		
		// 겍체 삭제
		map.remove("홍길동");
		System.out.println("총 Entry 수: " + map.size());
		
		// 객체를 하나씩 처리
		Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
		Iterator<Map.Entry<String, Integer>> entryIterator = entrySet.iterator();
		
		while (entryIterator.hasNext()) {
			Map.Entry<String, Integer> entry = entryIterator.next();
			String key = entry.getKey();
			Integer value = entry.getValue();
			System.out.println("\t" + key + " : " + value);
		}
		System.out.println();
		
		// 전체 객체 삭제
		map.clear();
		System.out.println("총 Entry 수: " + map.size());
		
	}
}

같은 키를 가진 값을 저장(put)하면 마지막 저장된 값으로 기존 값이 대체된다.

그리고 하나씩 저장된 객체를 확인하는 방법으로 2가지를 사용했는데, 저장된 키의 Set(keySet)을 가져와서 반복자를 통해 처리하는 방법과 entrySet으로 entry를 가져와서 처리하는 방법을 살펴봤다.

그리고 실행 결과는 아래와 같다.

이상으로 5주차 선택미션을 마친다.