woowacourse-study / 2022-modern-java-in-action

우아한테크코스 4기 모던 자바 인 액션 스터디
10 stars 4 forks source link

루프 퓨전이란 무엇인가? #36

Open yaho99 opened 2 years ago

yaho99 commented 2 years ago

문제

루프 퓨전이란 무엇일까?

선정 배경

책에서 filter와 map이 서로 다른 연산이지만 한 과정으로 병합되는 기법이 루프 퓨전이라고 언급했다. 루프 퓨전에 대해 알아보면 스트림의 중간 연산자에 대한 이해도를 높일 수 있을거라고 생각했다.

관련 챕터

[4장] 스트림 소개

yaho99 commented 2 years ago

루프 퓨전

루프 퓨전 전

for (i=0; i < 100; i++) {
    a[i] = a[i] + b[i];        
}

for (i=0; i < 100; i++) {
    b[i] = a[i] * d[i];    
}

루프 퓨전 후

for (i=0; i < 100; i++) {
    a[i] = a[i] + b[i];       
    b[i] = a[i] * d[i];       
}

안전하지 않은 루프 퓨전 후보

for (i=0; i < 100; i++) { 
    a[i] = a[i] + b[i];
} 

for (i=0; i < 100; i++) { 
    a[i+1] = a[i] * d[i]; 
}