본문 바로가기

JAVA

[JAVA] 해쉬맵(HashMap)

반응형

 

HashMap 특징


1. Map interface를 implements 한 클래스로 중복 허용 안함
2. key, value 쌍으로 이루어지며 null 허용
3. 가장 처음 넣은 데이터가 index 0 (FIFO)

 

 

HashMap 예제1


import static java.lang.System.out;
import java.util.HashMap;
import java.util.Set;

class MapEx1 {
	public static void main(String[] args) {
		String[] msg = { "Berlin", "Dortmund", "Frankfurt", "Gelsenkirchen","Hamburg" };
		HashMap<Integer, String> map = new HashMap<Integer, String>(); // HashMap생성<key,저장될데이터타입>

		for (int i = 0; i < msg.length; i++)
			map.put(i, msg[i]); // 맵에 저장
		Set<Integer> keys = map.keySet(); // map에 저장된 key들을 호출

		for (Integer n : keys)
			out.println(map.get(n)); // 맵에서 읽어오기
	}
}

 

결과

Berlin
Dortmund
Frankfurt
Gelsenkirchen
Hamburg

 

 

 

HashMap 예제2


import java.util.*;

class HashMapEx2 {

	public static void main(String[] args){

		HashMap<String,Integer> map = new HashMap<String,Integer>();

		//map.put(key타입,값타입) key가 같고 값이 다를경우 이후에 들어오는 값이 덧씌워진다.

		map.put("김자바", new Integer(90));
		map.put("김자바", new Integer(100));
		map.put("이자바", new Integer(100));
		map.put("강자바", new Integer(80));
		map.put("안자바", new Integer(90)); 

		Set set = map.entrySet();

		Iterator it = set.iterator();

		while(it.hasNext()) {
			Map.Entry e = (Map.Entry)it.next();
			System.out.println("이름 : "+ e.getKey() + ", 점수 : " + e.getValue());
		}

		set = map.keySet();

		System.out.println("참가자 명단 : " + set);

		Collection values = map.values();
		it = values.iterator();

		int total = 0;

		while(it.hasNext()) {
			Integer i = (Integer)it.next();
			total += i.intValue();
		}

		System.out.println("총점 : " + total);
		System.out.println("평균 : " + (float)total/set.size());
		System.out.println("최고점수 : " + Collections.max(values));
		System.out.println("최저점수 : " + Collections.min(values));
	}
}

 

결과

이름 : 강자바, 점수 : 80
이름 : 이자바, 점수 : 100
이름 : 김자바, 점수 : 100
이름 : 안자바, 점수 : 90
참가자 명단 : [강자바, 이자바, 김자바, 안자바]
총점 : 370
평균 : 92.5
최고점수 : 100
최저점수 : 80

 

 

 

 

반응형