반응형
맵(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
반응형