자바 Stream 이란?

서현서현·2023년 3월 19일
0

JAVA

목록 보기
19/27

프로그래머스의 가장 기본문제중 하나인 다음문제

늘 하던대로 for을 사용하여 통과하였다.
그런데 다른사람들의 풀이를 보니

이렇게 stream()을 이용한 람다식 풀이가 있는것을 발견!!

이참에 공부해보고자 한다

Streams

자바8에서 추가한 스트림은 람다를 활용하는 기술 중 하나이다. 자바8 이전에는 배열 또는 컬렉션의 인스턴스를 다루는 방법은 for 또는 forEach를 사용해서 요소를 하나씩 꺼내서 사용하는 방법이였다. 그러나 이 방법은 로직이 복잡해질수록 불편하다.

장점1

스트림은 데이터의 흐름이다. 배열 또는 컬렉션 인스턴스에 함수 여러개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있다. 또한 람다를 사용해서 코드의 양을 줄이고 간결하게 표현할 수 있다. 즉 배열과 컬렉션을 함수형으로 처리할 수 있다.

장점2

병렬처리가 가능하다. 하나의 작업을 둘 이상의 작업으로 잘게 나눠서 동시에 진행하는것을 병렬처리라고 한다. 즉, 쓰레드를 이용해 많은 요소를 빠르게 처리할 수 있다.

스트림 사용하기

1. 생성하기 : 스트림 인스턴스 생성
2. 가공하기 : 필터링 및 맵핑 등 원하는 결과를 만들어가는 중간작업
3. 결과만들기 : 최종적으로 결과를 만들어내는 작업

전체 -> 매핑 -> 필터링1 -> 필터링2 -> 결과만들기 -> 결과물

다음 게시물 참고해서 이어서 작성!
https://futurecreator.github.io/2018/08/26/java-8-streams/

0개의 댓글