프로그래밍/Java

IntStream.rangeClosed

Jinwookoh 2025. 3. 2. 15:20

1. IntStream.rangeClosed()란?

Java의 IntStream.rangeClosed(int startInclusive, int endInclusive) 메서드는 start부터 end까지(포함) 연속된 정수를 생성하는 스트림을 반환합니다.
이는 IntStream.range(int startInclusive, int endExclusive) 와 다르게 end 값이 포함(inclusive) 된다는 점이 특징입니다.

2. IntStream.rangeClosed()와 forEach 활용 예제

import java.util.stream.IntStream;

public class RangeClosedExample {
    public static void main(String[] args) {
        IntStream.rangeClosed(1, 10)
                 .forEach(System.out::println);
    }
}

실행 결과

 
1
2
3
4
5
6
7
8
9
10

위 코드에서 IntStream.rangeClosed(1, 10)은 1부터 10까지 포함하는 스트림을 생성하며, forEach(System.out::println)을 사용하여 각 숫자를 출력합니다.

3. rangeClosed() vs range() 차이점

메서드 포함 범위 예제 (1~5) 결과
range(start, end) end 미포함 IntStream.range(1, 5) 1, 2, 3, 4
rangeClosed(start, end) end 포함 IntStream.rangeClosed(1, 5) 1, 2, 3, 4, 5

즉, range()는 마지막 값을 포함하지 않고, rangeClosed()는 마지막 값까지 포함하는 차이가 있습니다.

4. IntStream.rangeClosed() 활용 사례

배열 인덱스 반복 처리

String[] fruits = {"Apple", "Banana", "Cherry"};
IntStream.rangeClosed(0, fruits.length - 1)
         .forEach(i -> System.out.println(i + ": " + fruits[i]));

숫자의 합 구하기

int sum = IntStream.rangeClosed(1, 10).sum();
System.out.println("Sum: " + sum);  // 출력: Sum: 55

짝수만 출력

IntStream.rangeClosed(1, 10)
         .filter(n -> n % 2 == 0)
         .forEach(System.out::println);

5. 마무리

IntStream.rangeClosed()는 연속된 숫자 스트림을 생성할 때 범위를 end 값까지 포함하도록 제공하는 메서드입니다.
forEach(), sum(), filter() 등의 다양한 메서드와 함께 사용하면 효율적인 반복 처리 및 연산이 가능합니다.