퀴즈 #10 질문이요~~
285
작성자 없음
작성한 질문수 0

강의 잘 듣고 있습니다! 이것저것 해보다가 궁금한게 생겼어요.
19번째 줄이 실행되는 순간 customerList의 fee 값이 바뀌어야 하는거 아닌가요? 20번째 줄을 안쓸때는 아래처럼 fee값이 안바뀐채로 출력되는데
챈 50 0
레 45 0
모 40 0
벤 20 0
제 10 020번째 줄을 쓰니까 이렇게 나오는 이유가 궁금합니다!
챈 50 2000
레 45 2000
모 40 2000
벤 20 0
제 10 0
답변 1
1
안녕하세요?
stream 연산에는 filter(), map() 과 같은 중간 연산이 있고 forEach(), count(), sum() 과 같은 최종 연산이 있습니다. 중간 연산은 여러 번 들어갈 수 있지만 최종 연산은 맨 뒤에 딱 한 번만 들어갈 수 있습니다. 이때, 최종 연산이 호출되어야 앞의 중간 연산들이 적용된다는 특징이 있답니다. 용어로는 지연 연산 (lazy evaluation) 이라고 부릅니다.
그래서 20번째 줄의 최종 연산인 .forEach() 문을 주석 처리 등으로 제외하고 실행했을 때는 19번째 줄의 .map() 이 아직은 적용되지 않고 최종 연산이 호출되기를 기다리는 상태이므로 fee 값이 바뀌지 않습니다 😊
감사합니다.
자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?
1
146
2
static이 뭐였는지 기억이 안나요 ㅜㅜ
0
119
2
Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의
0
72
1
사고력 키우는 법이 어떤게 있나요?
0
94
2
getter setter
0
103
2
섹션9. 66 메소드 오버로딩 시 질문이 있습니다.
0
80
1
안녕하세요 갑자기 프로그램 에러가 떠서 안되네요
0
76
2
변수 이름짓는법
0
114
2
intelli J 실행오류
0
115
2
혹시 이건 수학적 사고가 부족한 걸까요?
0
152
2
영상이 재생이 안됩니다.
0
167
3
이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.
0
117
2
응용이 어렵습니다.
0
206
2
IntelliJ가 보이지 않습니다.
0
187
3
JDK 버전 문의
0
130
2
BlackBox 파일 내에서 메소드 정의
0
136
1
동기화
0
123
2
Iterator 문의
0
105
1
코드 순서 문의
0
143
1
클래스 메소드
0
150
2
Quiz_05 관련 질문드립니다 !
0
118
2
다운로드가 안됩니다
0
165
2
다형성
0
120
2
HashMap
0
81
2





