IntStream — int 값의 순차·병렬 집계 연산을 지원하는 스트림
IntStream — int 값의 순차·병렬 집계 연산을 지원하는 스트림
원시 int 값 요소의 순차 및 병렬 집계 연산을 지원하는 시퀀스를 나타내는 인터페이스예요. Stream의 int 원시 타입 특화 버전이에요.
본문
public interface IntStream extends BaseStream<Integer, IntStream>
다음 예시는 Stream과 IntStream을 사용해 빨간 위젯의 무게 합계를 계산해요:
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
스트림, 스트림 연산, 스트림 파이프라인, 병렬성에 대한 자세한 명세는 Stream 및 java.util.stream 문서를 참고해요.
주요 중간 연산
filter(IntPredicate predicate)— 조건과 일치하는 요소로 구성된 스트림을 반환해요.map(IntUnaryOperator mapper)— 함수를 적용한 결과 스트림을 반환해요.mapToLong(IntToLongFunction)/mapToDouble(IntToDoubleFunction)—LongStream·DoubleStream으로 변환해요.boxed()— 각 요소를Integer로 박싱한Stream<Integer>을 반환해요.asLongStream()/asDoubleStream()—long·double로 변환한 스트림을 반환해요.distinct()— 중복을 제거한 스트림을 반환해요.sorted()— 오름차순으로 정렬한 스트림을 반환해요.limit(long)/skip(long)— 요소 수를 제한하거나 건너뛰어요.takeWhile(...)/dropWhile(...)— 조건이 참인 동안 요소를 취하거나 버려요.
주요 터미널 연산
forEach(IntConsumer)/forEachOrdered(IntConsumer)— 각 요소에 대해 동작을 수행해요.sum()— 요소의 합계를 반환해요.min()/max()— 최소·최대 요소를 반환해요.average()— 요소의 산술 평균을 설명하는OptionalDouble을 반환해요.count()— 요소 수를 반환해요.reduce(...)— 요소를 축소해 단일 값으로 결합해요.boxed().collect(...)— 박싱 후 가변 리덕션을 수행해요.anyMatch(IntPredicate)/allMatch(...)/noneMatch(...)— 조건 일치 여부를 검사해요.findFirst()/findAny()— 첫 또는 임의 요소를OptionalInt로 반환해요.toArray()— 요소를int[]배열로 반환해요.
주요 정적 메서드
-
of(int... values)— 지정된 값으로 순차 스트림을 반환해요. -
range(int startInclusive, int endExclusive)—startInclusive(포함)부터endExclusive(제외)까지의[start, end)범위 스트림을 반환해요. -
rangeClosed(int startInclusive, int endInclusive)— 양 끝을 포함한 범위 스트림을 반환해요. -
iterate(...)/generate(IntSupplier)— 반복·생성 스트림을 반환해요. -
builder()—IntStream용 가변 빌더를 반환해요. -
concat(IntStream a, IntStream b)— 두 스트림을 지연 연결한 스트림을 반환해요. -
도입 시점(Since): 1.8