자료형 - Map

Sample

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * Map
 */
public class Map {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("people", "Lewis Hamilton");
        map.put("team", "Mercedes AMG Petronas");

        System.out.println(map);
        System.out.println(map.get("people"));  // people 키에 해당하는 값 반환
        System.out.println(map.get("number"));  // 없는 키 접근시 null 리턴
        System.out.println(map.getOrDefault("number", "NoNumber"));  // 디폴트를 지정한다면 없는 키 접근시 디폴트 반환
        System.out.println(map.containsKey("team"));  // 전달된 키가 있는지 조사하여 그 결과를 boolean으로 반환
        System.out.println(map.size());  // HashMap size (키 갯수) 반환

        System.out.println(map.keySet());  // HashMap의 모든 키를 모아서 Set으로 반환
        List<String> keyList = new ArrayList<>(map.keySet());  // List로 바꿔서 반환도 가능하다.
        System.out.println(keyList);

        System.out.println(map.remove("team"));  // 전달된 키에 해당하는 데이터를 삭제하고 삭제된 value를 반환
        System.out.println(map);
    }
}

/*
Output

{team=Mercedes AMG Petronas, people=Lewis Hamilton}
Lewis Hamilton
null
NoNumber
true
2
[team, people]
[team, people]
Mercedes AMG Petronas
{people=Lewis Hamilton}
*/

PythonDictionary와 비슷하다.

HashMap

put

map.put(key, value);

데이터 삽입

get

map.get(key);

key에 해당하는 value를 얻는다.

getOrDefault

map.getOrDefault(key, default);

기본적으로 value가 없는 키에 접근시 null이 반환된다 이때 getOrDefault메서드를 사용하면 기본값을 지정하여 value가 없더라도 지정한 기본값이 반환된다.

containsKey

map.containsKey(key);

주어진 key가 존재하는지에 대한 여부를 boolean으로 반환한다.

remove

map.remove(key);

주어진 key에 대한 아이템을 삭제하고 삭제된 value를 반환한다.

size

map.size();

Map의 개수 (key 갯수)를 반환한다.

keySet

map.keySet();

Map의 모든 keySet 자료형으로 반환한다.

List<String> keyList = new ArrayList<>(map.keySet());

또한 위와 같이 List자료형으로 바꿔서 사용도 가능하다.

💡 LinkedHashMapTreeMap

  • LinkedHashMap은 입력된 순서대로 데이터를 저장하는 특징을 가지고 있다.
  • TreeMap은 입력된 key의 오름차순 순서로 데이터를 저장하는 특징을 가지고 있다.

Written by@Yongineer
Backend Developer

GitHubInstagram