[TIL][Java][2023-12-07] 컬렉션 - Map

2023. 12. 7. 21:02TIL/Java

Map

 

Map은 key - value 구조로 구성된 데이터를 저장할 수 있다.

 

 

 

 

  • 특징
    • key - value 형태로 데이터를 저장하기 때문에 기존에 순번으로만 조회하던 방식에서
      key 값을 기준으로 value를 조회할 수 있다.
    • key 값 중복을 허용하지 않는 기능을 가지고 있다.
    • Map은 그냥 Map으로 쓸 수도 있지만 HashMap, TreeMap등으로 응용하여 사용할 수 있다.

 

  • 기능
    • 선언 : Map<String, Integer> intMap 형태로 Key값과 Value타입을 지정해서 선언한다.
    • 생성 : new HashMap<>(); 의 형태로 생성한다.
    • 추가 : intMap.put(추가할 key값, 추가할 value값) 형태로 Key에 Value값을 추가한다.
    • 조회 : intMap.get(조회할 key값) 형태로 Key에 있는 Value값을 조회한다.
    • 전체 key 조회 : intMap.keySet() 형태로 전체 Key값들을 조회한다.
    • 전체 value 조회 : intMap.values() 형태로 전체 Value값들을 조회한다.
    • 삭제 : intMap.remove(삭제할 key값) 형태로 Key에 있는 Value값을 삭제한다.
  • HashMap : 중복을 허용하지 않고 순서를 보장하지 않음, 키와 값으로 null이 혀용된다.
  • TreeMap : key값을 기준으로 정렬을 할 수 있다. 다만, 저장시 정렬(오름차순)을 하기 때문에
    저장시간이 다소 오래 걸린다.

 

// Map 
// (사용하기 위해선 import java.util.Map; 를 추가해야한다.)


import java.util.Map;

public class Main {

	public static void main(String[] args) {
		Map<String, Integer> intMap = new HashMap<>(); // 선언 및 생성

		//          키 , 값
		intMap.put("일", 11);
		intMap.put("이", 12);
		intMap.put("삼", 13);
		intMap.put("삼", 14); // 중복 Key값은 덮어쓴다.
		intMap.put("삼", 15); // 중복 Key값은 덮어쓴다.

		// key 값 전체 출력
		for (String key : intMap.keySet()) {
			System.out.println(key); // 일,이,삼 출력
		}

		// value 값 전체 출력
		for (Integer key : intMap.values()) {
			System.out.println(key); // 11,12,15 출력
		}

		// get()
		System.out.println(intMap.get("삼")); // 15 출력
	}
}