주제
- #Stream
- #Lazy Evaluation
- #소수 판별
- #Java
- #최적화
작성: 2024-07-23
작성: 2024-07-23 19:39
흔히 n이 소수인지를 확인하기 위해서는 2부터 n - 1까지 n을 나눠가면서 나누어 떨어지는지 여부를 검사한다.
이 방법에서 최적화 몇 가지를 적용하여 더욱 효율적으로 개선하고, Stream을 이용하여 lazy evaluation을 적용해보자.
다음은 n이 소수인지를 검사하는 naive한 방법이다.
Java의 Stream은 List와 다르게 연산이 정의되었을 때 바로 연산을 수행하지 않는다.
각 원소들을 어떻게 계산하는지 정의된 상태로 대기하다가, 특정 원소가 필요할 때 그 원소를 구하기 위한 연산만 수행한다.
이를 이용하면 다음과 같이 소수를 구하는 Stream을 만들 수 있다.
전체 코드
실행 결과
댓글0