Java - Map - 개념, 종류, 선언 방법, 추가, 삭제, 호출, 존재 확인, 모든 키 확인, 갯수 확인

반응형

맵(Map)이란?

  • 키와 밸류가 한 쌍으로 이루어진 자료형 데이터 (=파이썬에서 딕셔너리와 비슷)
  • 키를 이용하여 값을 저장하는 자료형
  • 키는 유일한 값을 가지며 같은 키 값을 가질 수 없음
  • 밸류는 같은 값이 여러개가 되어도 상관 없음
  • 키가 없을 경우 새로운 키 추가, 키가 있을 경우 입력한 밸류로 값 변경

맵의 종류

  • HashMap : 맵의 가장 기본적인 자료형
  • LinkedHashMap : 데이터를 입력한 순서대로 저장
  • TreeMap : 입력된 키를 오름차순으로 저장

선언 방법

  • Map<키 타입, 밸류 타입> 변수 = new Map();
// 키와 밸류의 타입을 지정
// 키는 정수형, 밸류는 문자열로 정의
Map<Integer, String> map = new Map();

// HashMap<Integer, String> map = new HashMap();
// 해시맵 또한 맵의 인터페이스를 사용하기에 의미상으론 같음

값 추가

  • 변수이름.put(키, "밸류");
    • 추가하는 키가 해쉬맵에 존재 할 경우, 입력한 값으로 덮어씌워짐
Map<Integer, String> map = new Map();

map.put(1, "abc");
// map의 키 1의 값은 abc로 저장, 1=abc

map.put(1, "cba");
// map의 키 1이 존재하므로 cba로 덮어씌움, 1=cba

값 삭제

  • 변수이름.remove(키);
    • 특정 키의 값(키+밸류) 제거
  • 변수이름.clear();
    • 전체 값 제거
Map<Integer, String> map1 = new Map();
map1.put(1, "abc");
map1.put(2, "abc");

// 특정 키 값만 제거
map1.remove(1);
// 맵 객체 호출시, map1 = {2=abc}


Map<Integer, String> map2 = new Map();
map2.put(1, "abc");
map2.put(2, "abc");

// 전체 값 제거
map2.clear();
// 맵 객체 호출시, map2 = {}

값 호출

  • 변수이름.get(키);
    • 특정 키의 키와 밸류 값 호출
Map<Integer, String> map = new Map();
map.put(1, "abc");

// 맵의 특정 키의 저장된 값 호출
System.out.println(map.get(1));
// {1=abc}

데이터(키/밸류) 존재 유무 확인

  • 변수이름.containsKey();
  • 변수이름.containsValue();
    • 결과는 Bool(참/거짓) 자료형으로 반환
Map<Integer, String> map = new Map();
map.put(1, "abc");

// 맵의 1의 키가 존재하는지 확인
System.out.println(map.containsKey(1));
// true

// 맵의 xyz의 밸류가 존재하는지 확인
System.out.println(map.containsValue("xyz"));
// false

맵의 모든 키 확인

  • 변수이름.keySet();
Map<Integer, String> map = new Map();
map.put(1, "abc");
map.put(99, "abc");

// 맵의 저장된 모든 키 확인
System.out.println(map.keySet());
// [1, 99]

맵에 저장된 키의 갯수 확인

  • 변수이름.size();
Map<Integer, String> map = new Map();
map.put(1, "abc");
map.put(99, "abc");

// 맵에 저장된 키의 갯수 확인
System.out.println(map.size());
// 2
반응형