[개발] 프로그램 지식

[JAVA] 자바 Map 안의 Map 데이터

  • -
반응형

 

자바에서 Map 안의 Map 데이터를 다루는 방법

자바에서 데이터 구조로 Map을 사용할 때, 특히 Map 안에 Map이 포함된 구조를 다루는 상황이 종종 발생합니다. 이번 포스팅에서는 이러한 구조의 데이터를 꺼내는 방법을 단계별로 설명해 드리겠습니다.

 

 

 

 

 

 

📌 상황 설명

디버깅을 통해 확인한 변수 commonMap의 구조는 아래와 같습니다:

[{ key : value }]

즉, 리스트(List) 안에 Map이 포함된 형태입니다. 이런 구조에서 내부 Map의 데이터를 접근하고, 별도의 Map에 담아 사용하는 방법을 알아보겠습니다.

 

 

 

 

 

 

 

📋 코드 예제: Map 안의 Map 데이터 꺼내기


import java.util.*;

public class NestedMapExample {
    public static void main(String[] args) {
        // 예제 데이터: List 안에 Map이 포함된 구조
        List<Map<String, Object>> commonMap = new ArrayList<>();
        Map<String, Object> nestedMap = new HashMap<>();
        nestedMap.put("key", "value");
        commonMap.add(nestedMap);

        // 새로운 Map을 생성
        Map<String, Object> paramMap = new HashMap<>();

        // 첫 번째 인덱스에 있는 Map 데이터를 가져와서 paramMap에 담기
        paramMap = commonMap.get(0);

        // 특정 key의 값을 가져오기
        String value = (String) paramMap.get("key");

        // 출력
        System.out.println("key 값: " + value);
    }
}
    

 

 

 

 

 

 

 

 

🛠️ 코드 해설

  • List<Map<String, Object>>:
    commonMap 변수는 리스트(List) 안에 Map이 담긴 형태입니다.
  • 새로운 Map 생성:
    Map<String, Object> paramMap = new HashMap<>();
    데이터를 담을 새로운 Map(paramMap)을 생성합니다.
  • 데이터 가져오기:
    paramMap = commonMap.get(0);
    commonMap의 첫 번째 인덱스 데이터를 paramMap에 할당합니다. 이렇게 하면 paramMap은 아래와 같은 형태가 됩니다:
    { key : value }
  • 값 가져오기:
    paramMap.get("key");
    이제 paramMap에서 원하는 키 값 "key"를 통해 값을 꺼낼 수 있습니다.

 

 

 

 

 

 

 

 

🧩 응용: 여러 Map 데이터를 처리하기

만약 commonMap에 여러 Map이 포함된 경우, 반복문을 활용해 데이터를 처리할 수 있습니다:


for (Map<String, Object> map : commonMap) {
    System.out.println("Map 데이터: " + map);
    System.out.println("key 값: " + map.get("key"));
}
    

 

 

 

 

 

 

 

 

✅ 정리

자바에서 Map 안의 Map 데이터를 꺼내는 방법은 크게 어렵지 않습니다.

  1. 리스트에서 원하는 Map 데이터를 가져오고,
  2. 필요한 값을 get() 메서드를 통해 꺼내면 됩니다.

이 방법을 활용하면 다양한 데이터 구조를 유연하게 다룰 수 있습니다. 이 글이 도움이 되셨다면, 댓글로 응원의 메시지를 남겨주세요! 😊

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.