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() 메서드를 사용하여 연속된 숫자들의 합을 구해보는 간단한 실습이었습니다.
루프 없이도 깔끔하게 숫자 시퀀스를 생성할 수 있어, 합계, 평균, 필터링 등 다양한 작업에 효과적으로 사용할 수 있습니다.