<aside> 📌 filter()함수는 어떻게 동작할까?

</aside>

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        // 1. 원본 리스트 생성
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // 2. Stream 생성 및 filter, map 연산 수행
        List<Integer> evenSquares = numbers.stream() // 스트림 생성
            .filter(n -> n % 2 == 0) // 필터링: 짝수만 선택
            .map(n -> n * n) // 매핑: 각 요소를 제곱
            .collect(Collectors.toList()); // 최종 연산: 리스트로 변환

        // 3. 결과 출력
        System.out.println(evenSquares); // [4, 16, 36, 64, 100]
    }
}
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

List<Integer> squaresOfOdds = numbers.stream()
    .filter(n -> {
        System.out.println("Filtering " + n);
        return n % 2 != 0;
    })
    .map(n -> {
        System.out.println("Mapping " + n);
        return n * n;
    })
    .collect(Collectors.toList());
Filtering 1
Mapping 1

Filtering 2

Filtering 3
Mapping 3

Filtering 4

Filtering 5
Mapping 5

Filtering 6

Filtering 7
Mapping 7

Filtering 8

Filtering 9
Mapping 9

Filtering 10

<aside> 📌 결국 filter에서는 다 연산하는게 아닌가? 그럼 filter()메서드가 걸러내는작업은 뭘까?

</aside>