자바 공부 7 : 자료형 - 맵

친환경 개발자
|2024. 1. 22. 22:35

맵이란?

 

- 대응관계를 쉽게 표현할 수 있게 해주는 자료형

  다른 말로 associative array 또는 hash라고도 부른다

 

- 파이썬의 딕셔너리와 같이 keyvalue값을 한 쌍으로 가짐

 

- 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을 리스트 자료형으로 변환