[JAVA]IntStream

2025. 2. 9. 17:37·Language/JAVA

IntStream을 사용하는 이유

이 글을 작성하게 된 이유는 "이것이 자바다" 책의 Stream 파트를 공부하다가 아래 코드에서 변수의 자료형을 왜 Stream이 아닌 IntStream을 사용하는지 궁금해졌기 때문이다.

import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
	public static void main(String[] args) {
		int[] array= {1,2,3,4,5};
		IntStream intStream=Arrays.stream(array);
        //Stream<Integer> intStream=Arrays.stream(array);
		intStream.asDoubleStream().forEach(d->System.out.println(d));
	}
}

이 코드에서 IntStream을 사용하는 이유는 기본형 배열(int [])을 스트림으로 변환할 때 Arrays.stream()이 기본형인 int를 다루는 스트림을 반환하기 때문이다. 만약 Stream를 사용하려면 int 값을 Integer로 변환하는 과정이 필요하다. 즉 이 상황에서는 박싱을 굳이 할 필요가 없기 때문에 IntStream을 사용하는 것이다.

Stream<Integer>, IntStream 차이

Stream

1. 객체 스트림(Stream<T>)의 한 종류로, Integer 객체를 저장한다.

2. 내부 요소들이 참조 타입(Integer)이므로, 박싱(Boxing), 언박싱(Unboxing)이 필요하다.

3. 숫자 연산에 최적화된 메서드를 제공하지 않는다.

IntStream

1. 기본형 int를 다루는 스트림이다.

2. Stream<Integer>와 달리 기본형(int)을 직접 다룰 수 있어 성능이 향상된다.

3. sum(), average(), min(), max() 등 숫자 연산에 최적화된 메서드를 제공한다.

4. Stream<Integer>과 다르게 박싱(Boxing), 언박싱(Unboxing)  과정이 필요 없다.

정리

불필요한 박싱, 언박싱을 피하고 기본형인 int를 직접 다루기 위해 IntStream을 사용하기도 하지만 숫자 관련 연산을 쉽게 하기 위해서 IntStream을 사용하기도 한다!

'Language > JAVA' 카테고리의 다른 글

[JAVA]reduce() 메서드  (0) 2025.02.14
[JAVA]Optional 클래스  (0) 2025.02.10
[JAVA]내부 반복자 vs 외부 반복자  (0) 2025.02.05
[JAVA]String 클래스 메소드  (0) 2025.01.20
[JAVA]입출력 메서드  (0) 2025.01.14
'Language/JAVA' 카테고리의 다른 글
  • [JAVA]reduce() 메서드
  • [JAVA]Optional 클래스
  • [JAVA]내부 반복자 vs 외부 반복자
  • [JAVA]String 클래스 메소드
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[JAVA]IntStream
상단으로

티스토리툴바