본문 바로가기
Language/Java

자바 Map 사용법부터 출력까지

by wakestand 2019. 12. 3.
반응형

일단 Map의 특징을 먼저 알아보자면

 

Map은 선언 시 <key, value>로 값을 넣는다

Key와 Value는 한 쌍으로

Key로 식별하고 Value에 사용할 값을 넣는 식이다

 

여기서 Key는 중복이 불가능하고

동일한 Key 값으로 값을 넣을 시

최근에 넣은 값이 적용된다

 

이제 Map의 주요 메소드들을 통해 사용법을 알아보자면

 

Map 안에 값 넣기

Map.put(key,value);

 

Map 안의 값 가져오기

Map.get(key);

 

Map 크기 확인

Map.size();

 

Map 안의 내용 변경하기

Map.replace(key, value);

 

Map 안에 특정 Key, Value 들었는지 확인

Map.containsKey(key);

Map.containsValue(value);

 

Map의 크기가 0인지 확인

Map.isEmpty();

 

Map 안의 내용 삭제

Map.remove(key);

 

Key가 있으면 Value 없으면 default 호출

Map.getOrDefault(key, default);

- Map에 key에 해당하는 값이 없을 경우 default 호출

 

Key가 없거나 Value가 null일때만 삽입

Map.putIfAbsent(key, value);

 

Map은 선언 시

HashMap, TreeMap, HashTable, LinkedHashMap

으로 선언이 가능한데 차이점은 아래와 같다

 

HashMap

- Map 안에서 key/value에 따른 순서 없음

 

TreeMap

- key 값에 따라 오름차순 정렬,

정렬 때문에 대량의 데이터 삽입/삭제시 오래 걸림

 

LinkedHashMap

- 삽입 순서에 따라 정렬

 

HashTable

- key/value에 null을 넣을 수 없음,

동기화(synchronized) 되어있음

자세한 내용은 하단 참조

 

자바 Hashtable 예제부터 사용법까지

자바에서 Hashtable은 Map을 상속받아 Key, Value 형태를 가지게 된다 Key에 고정된 값, Value는 계속 바뀌는 값이 들어가는 식이다 자바 Map 사용법부터 출력까지 일단 Map의 특징을 먼저 알아보자면 Map은 선언..

wakestand.tistory.com

마지막으로 사용한 예제는 아래와 같다

 

	public static void main(String[] args) {
		HashMap<String, Integer> map = new HashMap<String, Integer>(); // Map 선언
		
		map.put("Soraka", 450);
		map.put("Garen", 4800); // Map 안에 값 넣기
        	// Map의 Key는 중복 불가, 동일한 Key에 다른 값을 넣을 경우 최근에 넣은 값 적용
		map.put("Garen", 1350);
		
           	// Key를 사용하여 Map 안의 값 가져오기
		System.out.println("Map Value : " + map.get("Garen")); 
		
		System.out.println("Map size : " + map.size()); // 맵 크기 확인
		
		map.replace("Garen", 450); // Key 값의 내용을 변경
		System.out.println("Garen Value : " + map.get("Garen")); 
		
        	// Key가 존재하는지 확인
		System.out.println("Key Exist : " + map.containsKey("Garen"));
		// Value가 존재하는지 확인
       		System.out.println("Value Exist : " + map.containsValue(450));
		
		System.out.println("Map Empty : " + map.isEmpty()); // Map의 크기가 0인지 확인
		
		map.remove("Garen"); // key에 해당하는 값 삭제
		map.put(null, 150);
		map.put("Garen", 450);
		
		System.out.println("Key가 있으면 Value 없으면 default : " + map.getOrDefault("Ahri", 6300));
		
		// Key가 없거나 Value가 null일 때만 삽입
		map.putIfAbsent("Master Yi", 6300);
		map.putIfAbsent("Garen", 6300);
		System.out.println("Key가 없거나 Value가 null일 때만 삽입 : " + map.get("Master Yi"));
		System.out.println("Key가 없거나 Value가 null일 때만 삽입 : " + map.get("Garen"));
	}
반응형

댓글