[Java] 컬렉션(Map) : HashMap, TreeMap

정재현·2024년 1월 3일

Java

목록 보기
22/43
post-thumbnail

Map

  • 생성자가 없는 인터페이스
    • HashMap, TreeMap등으로 응용하여 사용 가능
  • 순서가 없는 (Key,Value) 쌍으로 이루어진 데이터의 집합 (Key값 중복 허용 안함)
  • Key값을 기준으로 Value값 조회
  • Key 값 단위로 중복을 허용하지 않음

사용할 때

  • Key, Value로 값이 쌍으로 존재할 때 사용
  • Key값이 중복을 허용하지 않을 때
  • 순서가 필요 없을 때

기능

  • 선언 : Map<String, Integer> intMap 형태로 Key타입과 Value타입을 지정해서 선언
  • 생성 : new HashMap<>(); 형태로 생성

주요 기능

  • 추가 : put(추가할 Key값 ,추가할 Value값) 형태로 Key에 Value값을 추가
  • 조회 : get(조회할 Key값) 형태로 Key에 있는 Value값을 조회
  • 전체 key 조회 : keySet() 형태로 전체 key 값들을 조회
  • 전체 value 조회 : values() 형태로 전체 value 값들을 조회
  • 삭제 : remove(삭제할 Key값) 형태로 Key에 있는 Value값을 삭제

Map의 자식 클래스

  • 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값은 덮음

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

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

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

profile
공부 기록 보관소

0개의 댓글