Java/자바 정리
166. 숫자 범위 스트림 생성하기 – IntStream.rangeClosed()로 합 구하기
코딩하는냥이
2025. 5. 23. 12:28
반응형
자바에서는 IntStream을 통해 숫자의 연속된 범위를 손쉽게 스트림으로 만들 수 있습니다.
이번 예제에서는 1부터 100까지의 합을 스트림을 이용하여 구해보고,
rangeClosed() 메서드의 특징을 함께 알아보겠습니다.
📌 예제 코드
import java.util.stream.*;
public class StreamExample {
static int sum;
public static void main(String[] args) {
IntStream intStream = IntStream.rangeClosed(1, 100);
intStream.forEach(i -> sum += i);
System.out.println(sum);
}
}
💻 실행 결과
5050
💬 코드 설명
- IntStream.rangeClosed(1, 100)은 1부터 100까지 포함한 정수 스트림을 생성합니다.
- 참고: range(1, 100)은 1 이상 100 미만, 즉 1~99까지만 생성합니다.
- forEach() 메서드를 통해 각 숫자를 순회하며 sum 변수에 누적합니다.
- sum은 static 필드로 선언되어 외부에서 참조 및 누적이 가능합니다.
- 최종적으로 누적된 합이 System.out.println(sum);을 통해 출력됩니다.
💡 포인트 정리
- IntStream.rangeClosed(start, end)
→ 시작값부터 끝값까지 모두 포함하는 정수 스트림 생성 - IntStream.range(start, end)
→ 시작값부터 끝값 미만까지의 정수 스트림 생성 - 스트림 내부에서는 forEach()를 통해 반복 처리하며, 외부 변수에 접근할 수도 있지만
불변성과 병렬 처리의 안전성을 고려하면 가능한 한 내부 연산만으로 처리하는 것이 좋습니다.
📌정리하자면
이번 예제는 IntStream의 rangeClosed() 메서드를 사용하여 연속된 숫자들의 합을 구해보는 간단한 실습이었습니다.
루프 없이도 깔끔하게 숫자 시퀀스를 생성할 수 있어, 합계, 평균, 필터링 등 다양한 작업에 효과적으로 사용할 수 있습니다.