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() 등의 다양한 메서드와 함께 사용하면 효율적인 반복 처리 및 연산이 가능합니다.
'프로그래밍 > Java' 카테고리의 다른 글
REST API 버전 관리 – URL 방식 vs 헤더 방식 비교 (0) | 2025.05.08 |
---|---|
API 설계 시 버전을 명시하는 방법 (0) | 2025.05.08 |
빌더 (Builder) 클래스란? (2) | 2025.03.02 |
@Autowired 없어도 주입하는 방법 (0) | 2025.03.02 |
자바 인터페이스의 세가지 유형 메소드 (0) | 2025.03.02 |