JAVA (Stream)

이인아·2025년 2월 3일
0

java

목록 보기
14/16

Stream이란?

Java 8 부터 추가된 기술로 람다를 활용해 배열과 컬렉션을 함수형으로 간단하게 처리할 수 있는 기술이다.

기존의 for문과 Iterator를 사용하면 코드가 길어져서 가독성과 재사용성이 떨어지며 데이터 타입마다 다른 방식으로 다뤄야하는 불편함이 있다.

스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메소드를 정의해 놓아서 데이터 소스에 상관없이 모두 같은 방식으로 다룰 수 있으므로 코드의 재사용성이 높아진다.

Stream의 특징

1. 원본 데이터 소스를 변경하지 않는다.

  • 읽기만 한다.

2. 일회용이다.

  • 한 번 사용하면 닫혀서 재사용이 불가능하다.

3. 최종 연산 전까지 중간 연산을 수행하지 않는다.

4. 작업을 내부 반복으로 처리한다.

  • forEach()는 매개변수에 대입된 람다식을 데이터 소스의 모든 요소에 적용한다.

5. 병렬 처리가 쉽다.

  • 멀티쓰레드 사용

6. 기본형 스트림을 제공한다.

  • Stream<Integer> 대신 IntStream 이 제공되어서 오토박싱과 언박싱 등의 불필요한 과정이 생략되고 숫자의 경우 유용한 메소드를 추가로 제공한다. (.sum(), .average() 등)

0개의 댓글