Stream

itonse·2023년 11월 3일
0

JAVA

목록 보기
6/19

[참고 영상]

movie


✏️ Stream을 사용하면..

  • 데이터 처리 코드가 더 간결하고 가독성이 높아집니다.
  • 병렬 처리를 통해 성능을 향상시킬 수 있습니다.
  • 함수형 프로그래밍 요소를 통해 코드를 함수적으로 구성할 수 있습니다.
    - 계속해서 Dot 연산자로 method chaining을 일으킵니다.


❓ for문 보다 Stream이 느리다?

  • for문은 "단순 인덱스 기반으로 도는 반복문"이기 때문에 빠릅니다.
  • stream의 경우는 JVM이 이것저것 처리해줘야하는 것들이 많아 실행 시 느릴 수 밖에 없습니다.
  • 그럼에도 위에서 나온 가독성, 함수적 구성이 가능하다는 장점 때문에 많이 사용됩니다.


💡 Stream 구성

Stream은 생성, 가공, 결과 만들기 단계로 구성됩니다.

✔️ 생성

Collection, Array, File
-> 데이터 소스로 부터 스트림 생성

✔️ 가공(중간연산자)

filter, map, peek, sorted, distinct, limit
-> 스트림을 변환하거나 필터링하는 데 사용. 새로운 Stream 반환

✔️ 결과 만들기(최종연산자)

collect(권장), forEach(신중), findAny, findFirst, anyMatch, allMatch
-> 스트림을 닫고 결과 생성


예시코드

List<String> words = Arrays.asList("apple", "Pear", "grape", "Kiwi");

        // 중간 연산: 문자열 길이가 5보다 큰 것만 필터링
        // 최종 연산: 결과를 리스트로 모음
        List<String> filteredWords = words.stream()
                .filter(word -> word.length() < 5)
                .collect(Collectors.toList()); 


> filteredWords = ["Pear", "Kiwi"];
            




Ref.
https://pamyferret.tistory.com/49

0개의 댓글

관련 채용 정보