스트림(Stream)

JH·2024년 2월 15일

java

목록 보기
13/21

스트림(Stream)은 배열, 컬렉션 등의 데이터를 하나씩 참조하여 처리할 수 있는 기능을 제공한다. 이를 통해 for문 등을 사용한 반복 작업을 줄이고 코드를 간결하게 작성할 수 있다. 스트림은 크게 세 가지 단계로 구성된다.

스트림 생성

배열 스트림

String[] arr = new String[]{"a", "b", "c"};
Stream<String> stream = Arrays.stream(arr);

컬렉션 스트림

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();

중개 연산

아래 기능 외에도 여러가지가 있지만 대표적으로 filter와 map을 살펴보겠다.

Filtering (필터링)

IntStream intStream = IntStream.range(1, 10).filter(n -> n % 2 == 0);

filter 메소드는 내부 조건에 해당하는 요소들을 추출한다.

Mapping (매핑)

IntStream intStream = IntStream.range(1, 10).map(n -> n + 1);

map 메소드는 각 요소에 대해 주어진 연산을 수행하여 새로운 값을 생성한다.

최종 연산

최종 연산도 대표적으로 sum, average, min, max를 살펴보겠다.

Sum, Average (합계, 평균)

IntStream.range(1, 5).sum();  // 합계
IntStream.range(1, 5).average().getAsDouble();  // 평균

Min, Max (최솟값, 최댓값)

IntStream.range(1, 5).min().getAsInt();  // 최솟값
IntStream.range(1, 5).max().getAsInt();  // 최댓값

스트림의 최종 연산은 스트림을 처리하고 결과를 반환하는 단계로, 스트림을 닫고 더 이상의 연산을 수행하지 않는다. 이를 통해 스트림을 효율적으로 처리할 수 있다.

profile
발전하는 백엔드 개발자

0개의 댓글