스트림을 사용하여 Json에서 중첩 된 맵 만들기

지프

동일한 구조의 중첩 된 POJO로 읽는 아래 Json이 있습니다.

{
  "employees": [
    {
      "name": "John",
      "age": "30",
      "proData": [
        {
          "year": "1",
          "idList": [
            "234342",
            "532542",
            "325424",
            "234234"
          ]
        },
        {
          "year": "2",
          "idList": [
            "234342",
            "532542",
            "325424",
            "234234"
          ]
        },
        {
          "year": "3",
          "idList": [
            "234342",
            "532542",
            "325424",
            "234234"
          ]
        }
      ]
    },
    {
      "name": "Scott",
      "age": "32",
      "proData": [
        {
          "year": "1",
          "idList": [
            "234342",
            "532542",
            "325424",
            "234234"
          ]
        },
        {
          "year": "2",
          "idList": [
            "234342",
            "532542",
            "325424",
            "234234"
          ]
        },
        {
          "year": "3",
          "idList": [
            "234342",
            "532542",
            "325424",
            "234234"
          ]
        }
      ]
    }
  ]
}

이제 이것을 아래와 같은 구조로 매핑하고 싶었습니다. .NET ProDataFramework의 각 문자열을 사용하여 초기화 할 수 있습니다 idList.

Map<String,Map<String,List<ProData>>> finalMap

나는 아래와 같이 작성했고 작동합니다.

        Map<String,Map<String,List<ProData>>> finalMap = new HashMap<>();

        for(Employee employee:root.getEmployees()){
            Map<String,List<ProData>> proDataMap = new HashMap<>();
            for(ProData proData: employee.getProData()){
                List<ProData> finalObjs = new ArrayList<>();
                for(String id:proData.getIdList()){
                   finalObjs.add(new ProData(id));
                }

                proDataMap.put(proData.getYear(),finalObjs);
            }
            finalMap.put(employee.getName(),proDataMap);
        }

스트림 API를 사용하여 더 나은 버전을 만들고 싶었습니다.

스위퍼

최종 결과는지도이므로 toMap수집기를 사용하십시오 . 맵의 키는 직원 이름 (중복이 없다고 가정)이며 맵 값에는 약간 더 많은 작업이 필요합니다.

root.getEmployees().stream().collect(
    Collectors.toMap(
        Employee::getName,
        Employee::getProDataMap
    )
}

이제 작성 해보자 getProDataMapEmployee. 다시 우리는 toMap수집기를 사용합니다 . 키는 연도 (중복이 없다고 가정)이고 값은 ProData생성자 사용하여 매핑 된 ID 목록 입니다.

public Map<String, List<ProData>> getProDataMap() {
    return this.getProData().stream().collect(
        Collectors.toMap(
            ProData::getYear,
            proData -> proData.getIdList().stream()
                .map(ProData::new)
                .collect(Collectors.toList())
        )
    )
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java / Stream Help : 스트림 만 사용하여 중첩 된 맵 목록을 맵으로 변환

분류에서Dev

점 표기법을 사용하여 중첩 된 맵에서 중첩 된 항목을 제거하는 방법

분류에서Dev

맵을 사용하여 중첩 된 목록에서 가져 오기

분류에서Dev

Python에서 중첩 된 속성을 사용하여 빈 개체 만들기

분류에서Dev

반복기를 사용하여 중첩 된 맵에 값 삽입

분류에서Dev

맵을 사용하여 중첩 된 목록의 평균 찾기

분류에서Dev

스트림을 사용하여 문자열 목록에서 맵 만들기

분류에서Dev

중첩 된 사전 및 목록을 사용하여 Python에서 json 객체 만들기

분류에서Dev

목록을 사용하여 중첩 된 사전 만들기

분류에서Dev

중첩 된 맵 작업을 사용하여 배열에서 객체 반환

분류에서Dev

Python을 사용하여 중첩 된 메뉴 만들기

분류에서Dev

Python : 중첩 된 목록의 여러 값을 사용하여 튜플 키에서 dict 만들기

분류에서Dev

2 단계의 Python을 사용하여 CSV 파일에서 중첩 된 사전 만들기

분류에서Dev

루프를 포함하는 중첩 된 Promise를 사용하여 JavaScript에서 트리 만들기

분류에서Dev

setTimeout을 사용하여 중첩 된 맵 순차 렌더링에 반응

분류에서Dev

Ruby에서 중첩 된 JSON 키 값 쌍을 사용하여 클래스에서 새 인스턴스 / 객체 만들기

분류에서Dev

중첩 된 객체 배열을 사용하여 객체 배열에서 CSV 만들기

분류에서Dev

Python에서 for 루프를 사용하여 중첩 된 사전 만들기

분류에서Dev

중첩 된 해시 맵에서 여러 동일한 깊이 값의 컬렉션 만들기

분류에서Dev

문자열 보간을 사용하여 dartlang에서 중첩 된 맵의 값에 액세스

분류에서Dev

for 루프를 사용하여 Flutter에서 중첩 된 위젯 만들기

분류에서Dev

중첩 된 요소를 사용하여 XML에서 XSD 만들기

분류에서Dev

tmap을 사용하여 R에서 여러 맵 만들기

분류에서Dev

요소 트리를 사용하여 중첩 된 XML에 대한 고유 코드 만들기

분류에서Dev

중첩 된 목록에서 요소가 누락 된 경우 맵을 사용하여 NA 반환

분류에서Dev

중첩 된 맵 함수에서 동시 비동기 호출을하는 방법

분류에서Dev

스크랩 된 데이터에서 중첩 된 사전 만들기 (Scrapy Python)

분류에서Dev

기본값을 사용하여 객체에 중첩 된 사전

분류에서Dev

Python에서 matplotlib를 사용하여 지정된 불연속 색상 매핑으로 히트 맵 만들기

Related 관련 기사

  1. 1

    Java / Stream Help : 스트림 만 사용하여 중첩 된 맵 목록을 맵으로 변환

  2. 2

    점 표기법을 사용하여 중첩 된 맵에서 중첩 된 항목을 제거하는 방법

  3. 3

    맵을 사용하여 중첩 된 목록에서 가져 오기

  4. 4

    Python에서 중첩 된 속성을 사용하여 빈 개체 만들기

  5. 5

    반복기를 사용하여 중첩 된 맵에 값 삽입

  6. 6

    맵을 사용하여 중첩 된 목록의 평균 찾기

  7. 7

    스트림을 사용하여 문자열 목록에서 맵 만들기

  8. 8

    중첩 된 사전 및 목록을 사용하여 Python에서 json 객체 만들기

  9. 9

    목록을 사용하여 중첩 된 사전 만들기

  10. 10

    중첩 된 맵 작업을 사용하여 배열에서 객체 반환

  11. 11

    Python을 사용하여 중첩 된 메뉴 만들기

  12. 12

    Python : 중첩 된 목록의 여러 값을 사용하여 튜플 키에서 dict 만들기

  13. 13

    2 단계의 Python을 사용하여 CSV 파일에서 중첩 된 사전 만들기

  14. 14

    루프를 포함하는 중첩 된 Promise를 사용하여 JavaScript에서 트리 만들기

  15. 15

    setTimeout을 사용하여 중첩 된 맵 순차 렌더링에 반응

  16. 16

    Ruby에서 중첩 된 JSON 키 값 쌍을 사용하여 클래스에서 새 인스턴스 / 객체 만들기

  17. 17

    중첩 된 객체 배열을 사용하여 객체 배열에서 CSV 만들기

  18. 18

    Python에서 for 루프를 사용하여 중첩 된 사전 만들기

  19. 19

    중첩 된 해시 맵에서 여러 동일한 깊이 값의 컬렉션 만들기

  20. 20

    문자열 보간을 사용하여 dartlang에서 중첩 된 맵의 값에 액세스

  21. 21

    for 루프를 사용하여 Flutter에서 중첩 된 위젯 만들기

  22. 22

    중첩 된 요소를 사용하여 XML에서 XSD 만들기

  23. 23

    tmap을 사용하여 R에서 여러 맵 만들기

  24. 24

    요소 트리를 사용하여 중첩 된 XML에 대한 고유 코드 만들기

  25. 25

    중첩 된 목록에서 요소가 누락 된 경우 맵을 사용하여 NA 반환

  26. 26

    중첩 된 맵 함수에서 동시 비동기 호출을하는 방법

  27. 27

    스크랩 된 데이터에서 중첩 된 사전 만들기 (Scrapy Python)

  28. 28

    기본값을 사용하여 객체에 중첩 된 사전

  29. 29

    Python에서 matplotlib를 사용하여 지정된 불연속 색상 매핑으로 히트 맵 만들기

뜨겁다태그

보관