[JAVA Stream] 1. Intro

준커·2023년 5월 1일
1

JAVA 8

목록 보기
1/5
post-thumbnail

Stream 공식문서

java.util.stream (Java Platform SE 8 )

JAVA Stream이란?

Java 8에서 소개된 것중 하나로 연속된 처리 작업을 선언적으로 표현하는데 사용됩니다.

List<Member> members = new ArrayList<>();

List<Integer> memberIds = members.stream()
									.map(member -> member.getId())
                                    .collect(Collectors.toList());

Stream 파이프라인

Stream 파이프라인은 다음과 같이 구성되어 있습니다.

데이터 소스

  • Stream은 배열, 리스트, 파일 등의 데이터 소스를 처리할.

  • 데이터 소스는 Stream 객체로 변환.

    위 코드에서 데이터 소스는

    members

    입니다.

중간 연산자

  • 데이터 소스에서 변환된 Stream 객체중간 연산자를 통해 필터링, 매핑, 정렬 등의 중간 처리를 수행.

  • 중간 연산자는 연속해서 호출 가능.

  • 중간 연산자는 Stream 객체를 반환.

    위 코드에서 중간 연산자는

    .map(member -> member.getId())

    입니다.

최종 연산자

  • 중간 연산자를 통해 변환된 Stream 객체최종 연산자를 통해 집계, 수집, 출력 등의 최종 처리를 수행.

  • 최종 연산자는 마지막에 한 번만 호출 가능.

  • 최종 연산자는 Stream 객체를 반환하지 않음.

    위 코드에서 중간 연산자는

    .collect(Collectors.toList())

    입니다.

추가로 Static 메소드가 존재합니다.

Stream 파이프라인의 특징

지연(lazy) 연산

  • 중간 연산자는 Stream 객체를 반환하며, 최종 연산자가 호출되기 전까지 실행되지 않음.
  • 때문에 중간 연산자는 지연 연산이 가능.

병렬 처리

  • Stream 객체는 parallel 메서드를 통해 병렬처리가 가능.

내부 반복

  • Stream은 내부적으로 반복자를 사용하여 처리 작업을 수행.
  • 내부 반복은 개발자가 직접 반복자를 제어하지 않아도 되며, 코드가 간결해짐.

글의 목적

  • 위에 언급한 Stream 공식 문서 중에 비교적 많이 쓰이는 Interface Summary의 Stream에 대해 뜯어보려고 한다.
  • 해당 글을 포함하여 총 4개의 시리즈로 구성할 예정이며 Stream 파이프라인의 중간 연산자최종 연산자Static 메소드로 나누어 글을 쓸 예정이다.
profile
학부생일뿐

0개의 댓글