inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

FlatMap

flatMap 응용 방법에 대해서, 이렇게 하는게 맞는지?

해결된 질문

122

생각하는자

작성한 질문수 139

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요. flatMap 을 응용하려고 만들어봤는데

이렇게 하는게 맞는지?? 알고 싶어서 코드를 올립니다.

image.png

일단 저가 한 것은, 리스트 안에 맵 자료구조 를 여러개를 놓고(map 도 of가 있네요) 이것들을 평탄화 하려고 한 방법 입니다.

이렇게 하면 되는 것인가요?
(한번에 하는 방법을 못찾아서 이렇게 2번으로 쪼갰습니다.)

java 함수형-프로그래밍 lambda optional

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

생각하는자님께서 올려주신 flatMap 활용 방법에 대한 질문에 답변을 드리겠습니다.

flatMap은 스트림의 각 요소를 매핑하여 새로운 스트림을 반환하고, 이를 하나의 스트림으로 평탄화하는 데 사용됩니다. 생각하는자님께서 리스트 안의 맵들을 평탄화하려고 하셨다면, flatMap을 사용하여 중첩된 구조를 간단하게 풀어낼 수 있습니다.

코드 설명을 기반으로 하면, outerList의 각 맵의 키 세트를 먼저 map으로 추출하고, 그 뒤에 flatMap을 사용하여 이들을 하나의 스트림으로 합쳐 정렬된 리스트로 변환했습니다. 적절히 flatMap을 활용하여 구조를 평탄화하고 이후 정렬을 수행하는 과정은 올바르게 사용된 것입니다.

한번에 처리하는 방식도 있습니다만, 상황에 따라 로직을 두 번으로 나누어 이해하기 쉽게 설정하는 것도 좋은 방법이라 할 수 있습니다.

추가적인 질문이나 더 나은 방식에 대한 문의 사항이 있다면 언제든지 남겨주세요!

로드맵 확인하러 가기

0

생각하는자

그러네요.. 합칠 수 있네요.

근데 "로드맵 확인하러 가기" 링크는 왜 하신건지 모르겠습니다.

db sql vs java stream 비교 궁금증 알려주세요!

1

70

1

파라미터 구분이 안되는지..?

0

67

1

자바 21 버전을 꼭 써야하나요??

0

143

2

9. 스트림 API3-컬렉터 오타?

0

77

2

(추석 챌린지) 복습 정리내용

0

94

1

람다 궁금한 점

0

69

2

스트림과 for문 질문

0

41

1

디폴트 메서드를 사용한 리펙토링

0

51

1

실무에서의 커스텀 Collector 사례 여부

0

62

1

IntelliJ 한글 깨지는 현상 문의

0

193

1

함수형 프로그래밍 적용 범위/원칙

0

59

1

스트림에 대해서 질문(float)은 사용하는지

0

55

1

[자료 패키지 누락] 2.람다 자료에서 문제 패키지명 생략 (25page)

0

60

2

지연 평가

0

68

1

메서드 시그니처

0

99

3

고급편 우선순위

0

129

3

스프링 데이터 JPA 인터페이스에서의 default 메서드 사용

0

112

2

독립적인 스레드 할당 시 스레드 개수는 어떻게 할당해야 할까요?

0

85

1

병렬 프레임 병목 현상 해결책에 대해 궁금한 점

0

101

1

스트림 중복 에러 관련 질문

0

69

1

자바 버전이 31 까지 업데이트 된다면 새로운 자바 강의를 추가 하실 건가요?

0

132

1

임계값과 스레드수를 줄일 경우 교착상태가 발생할수 있는건가요?

0

100

2

변수 합치기에 대해서 질문드립니다!

0

80

2

선생님께 질문드립니다!

0

96

1