맵이란?
- 대응관계를 쉽게 표현할 수 있게 해주는 자료형
다른 말로 associative array 또는 hash라고도 부른다
- 파이썬의 딕셔너리와 같이 key와 value값을 한 쌍으로 가짐
- HashMap, LinkedHashMap, TreeMap 등이 있음
- 제너릭스를 이용해 선언하는 것이 좋다
ex) HashMap<String, String> map = new HashMap<>();
key value
HashMap : 맵의 가장 기본형태
- HashMap 패키지를 임포트 해야 한다 >> ( import java.util.HashMap; )
● 주요 사용 메서드
- put : key, value 추가
ex) a.put("people", "사람")
- get : key에 해당하는 value를 구함
ex) System.out.println(a.get("people"); >> "사람" 출력
- containsKey : 맵에 해당 key 가 있는지 알려줌(True / False)
ex) System.out.println(a.containsKey("people"); >> True 출력
System.out.println(a.containsKey("사람"); >> False 출력
- remove : 맵의 항목을 삭제. 해당 key의 항목을 삭제한 후 value값 리턴
ex) System.out.println(a.remove("people"); >> people 항목 삭제 후 "사람" 출력
- size : 맵 요소의 개수 리턴
ex) System.out.println(a.size()); >> people 항목 1개뿐이면 1 출력
- keySet : 맵의 모든 key를 모아 집합 자료형으로 리턴
ex) System.out.println(a.keySey()); >> [people] 출력
※ 집합자료형을 리스트 자료형으로 변환하기
List<String> keyList = new ArrayList<>(a.keySet());
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.HashSet;
import java.util.Arrays;
public class Day5 {
public static void main(String[] args){
/* 3-8 맵
key와 value로 구성, 순차적 X, HashMap/LinkedHashMap/TreeMap
*/
// HashMap : 가장 기본형, LinkedHashMap: 작성 순서대로, TreeMap: 오름차순으로 순서
HashMap<String, String> map = new HashMap<>();
map.put("people", "사람"); //put : 맵에 key와value를 넣을 수 있다 = 요소 생성
map.put("baseball", "야구");
map.put("basketball", "농구");
map.put("football", "축구");
System.out.println(map.get("people")); // get : key값 넣으면 value값 얻음
System.out.println(map.get("사람")); // value값 넣으면 ? null
System.out.println(map.getOrDefault("사람", "기본값")); // getOfDfault : null 대신 기본값을 얻고 싶을때 사용
System.out.println(map.containsKey("people")); // containsKey : 맵에 해당 key가 있는지(True/False)
System.out.println(map.remove("people")); // remove : 맵의 항목 삭제. 해당 key의 항목 삭제 후 value값 리턴
System.out.println(map.get("people")); // null 출력, 삭제됐음을 알 수 있다.
System.out.println(map.size()); // size : 맵 요소의 개수 리턴 .. 1 출력
System.out.println(map.keySet()); // keySet: 맵의 모든 key를 모아 집합 자료형으로 리턴
List<String> keyList = new ArrayList<>(map.keySet()); // 집합 자료형인 keySet을 리스트 자료형으로 변환