IntStream, LongStream의 범위 - range, rangeClose 차이 및 예제
IntStream과 LongStream 에는 range와 rangeClosed 메소드를 지원한다. 이 둘로 범위를 지정할 수 있는데, Closed가 붙으면 끝 개수를 포함한다.
다음은 결과 예제이다.
import java.util.stream.IntStream;
import java.util.stream.LongStream;
public class IntStreamTest {
public static void main(String[] args) {
IntStream
.range(1, 10)
.forEach(System.out::println);
System.out.println("");
IntStream
.rangeClosed(1, 10)
.forEach(System.out::println);
System.out.println("");
LongStream
.range(10000000000L, 10000000001L)
.forEach(System.out::println);
System.out.println("");
LongStream
.rangeClosed(10000000000L, 10000000001L)
.forEach(System.out::println);
}
}
결과
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
10
10000000000
10000000000
10000000001
Process finished with exit code 0
쓰레드 5개를 한번에 생성해서 돌리고 싶다면, IntStream.rangeClosed()를 다음과 같이 이용해서 사용할 수 있다.
import java.util.stream.IntStream;
public class IntStreamIntStreamTest {
public static void main(String[] args) {
IntStream.rangeClosed(1, 5).forEach(i->{
new Thread(()->{
System.out.println("Test!");
}).start();
});
}
}