더북(TheBook)

12
기본 타입 스트림

지금까지는 정수를 래퍼 객체로 감싸는 일이 명백히 비효율적인데도 불구하고 정수들을 Stream<Integer>로 모았다. 래퍼 객체의 비효율성은 다른 기본 타입인 double, float, long, short, char, byte, boolean의 경우도 마찬가지다. 스트림 라이브러리는 기본 타입 값들을 직접 저장하는 데 특화된 타입인 IntStream, LongStream, DoubleStream을 포함한다. short, char, byte, boolean 타입을 저장하려면 IntStream을 사용하고, float인 경우 DoubleStream을 사용한다. 라이브러리 설계자들은 이들 나머지 5개 스트림 타입을 추가할 가치가 있다고 생각하지 않았다.

IntStream을 생성하려면 IntStream.ofArrays.stream 메서드를 호출한다.


IntStream stream = IntStream.of(1, 1, 2, 3, 5);

stream = Arrays.stream(values, from, to); // 값은 int[] 배열이다.


 

객체 스트림과 마찬가지로 정적 generateiterate 메서드를 사용할 수 있다. 또한 IntStreamLongStream은 크기 증가 단위가 1인 정수 범위를 생성하는 정적 rangerangeClosed 메서드를 포함한다.


IntStream zeroToNinetyNine = IntStream.range(0, 100); // 상한값 제외

IntStream zeroToHundred = IntStream.rangeClosed(0, 100); // 상한값 포함


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.