티스토리 뷰
728x90
기본형 특화 스트림인 IntStream과 LongStream에는 정적 메서드인 range와 rangeClosed가 있다.
특정 범위의 숫자를 차례대로 생성해주는 기능을 가진다.
두 메서드 모두 시작 값과 종료 값을 인수로 받는다.
public static IntStream range(int startInclusive, int endExclusive) {
...
}
public static IntStream rangeClosed(int startInclusive, int endInclusive) {
...
}
단 하나의 차이점이라면
함수의 인자값에도 힌트가 있듯이 range 메서드는 종료 값을 포함하지 않지만 (endExclusive)
rangeClosed 메서드는 종료값을 포함해서 반환한다. (endInclusive)
예제 및 결과
public class IntStreamSample {
public static void main(String[] args) {
System.out.println("range");
IntStream.range(0, 5)
.forEach(System.out::println);
System.out.println("=========");
System.out.println("rangeClosed");
IntStream.rangeClosed(0, 5)
.forEach(System.out::println);
//짝수의 개수 구하기
long evenCount = IntStream.range(0, 100)
.filter(i -> i % 2 == 0)
.count();
System.out.println("짝수 개수 = " + evenCount);
}
}
//결과
range
0
1
2
3
4
=========
rangeClosed
0
1
2
3
4
5
짝수 개수 = 50
결과에서 보다시피 range는 끝 값을 포함하지 않고 rangeClosed는 끝 값을 포함한다.
마지막에 짝수만 필터링 하는 IntStream 예제인데 range메서드를 사용해서 50개가 나오는데 rangeClosed를 사용하면 51개가 나온다.
100을 포함하기 때문이다.
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Bash tab
- Spring
- elasticsearch
- 오라클
- 베리 심플
- mybatis
- Java
- oracle
- input
- Kotlin
- Github Status
- Linux
- svn
- springboot
- LocalDateTime
- mybatis config
- LocalDate
- rocky
- maven
- config-location
- localtime
- k8s
- JavaScript
- docker
- intellij
- jQuery
- window
- 북리뷰
- Spring Security
- Mac
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함