230218 스트림, Stream

Jongleee·2023년 2월 18일
0

TIL

목록 보기
185/576

자바 8부터 추가된 Stream API는 컬렉션, 배열 등의 데이터 소스를 다룰 수 있는 기능을 제공함
Stream은 함수형 프로그래밍을 지원하며, 여러 메소드 체인을 이용하여 손쉽게 데이터 처리를 할 수 있음
Stream API를 사용하면 루프를 통한 반복 작업을 줄일 수 있어 코드 가독성과 유지보수성을 향상시킬 수 있음

Stream API의 핵심적인 특징

연속적인 처리 가능
손쉬운 병렬처리 가능
중간 처리와 최종 처리로 구분
지연 처리(lazy evaluation) 지원
Stream API는 java.util.stream 패키지에 정의되어 있음

중간 연산 (Intermediate Operations)

Stream에 대한 중간 처리 작업을 수행하는 연산
중간 연산은 다른 스트림을 반환하므로, 연속해서 다른 중간 연산 또는 최종 연산을 수행할 수 있음
대표적인 중간 연산으로는 filter(), map(), sorted() 등이 있음

최종 연산 (Terminal Operations)

Stream에 대한 최종 처리 작업을 수행하는 연산
최종 연산은 Stream을 닫으며, 다른 연산을 더 이상 수행할 수 없음
대표적인 최종 연산으로는 count(), collect(), forEach() 등이 있음

사용 예시

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        
        List<String> result = list.stream()
                                 .filter(s -> s.length() >= 5)
                                 .collect(Collectors.toList());
        
        System.out.println(result);
    }
}

List 객체를 대상으로 Stream을 생성
filter() 메소드를 이용하여 길이가 5 이상인 문자열만 필터링
collect() 메소드를 이용하여 필터링된 문자열을 새로운 List로 반환

출력 결과

[apple, banana, cherry, elderberry]

0개의 댓글