Java stream

Jemin·2023년 9월 21일
0

백엔드

목록 보기
6/21
post-thumbnail

Java stream

Java stream은 자바 8부터 도입된 기능으로, 컬렉션(배열, 리스트, 맵 등)을 함수형 프로그래밍 요소처럼 다룰수 있게 해주는 API다.

스트림은 데이터 처리 파이프라인을 만들어 데이터를 조작, 변환, 필터링할 수 있는 강력한 방법을 제공한다.

주요 특징과 개념

  • 데이터 소스: 스트림은 데이터 소스로부터 데이터를 읽어온다. 데이터 소스는 배열, 컬렉션, 파일 등 다양한 형태가 될 수 있다.

  • 스트림 연산: 스트림은 중간 연산과 최종 연산으로 구분된다. 중간 연산은 데이터를 변환하고 필터링하는 등의 연산을 수행하며, 최종 연산은 실제로 데이터를 소모하고 결과를 반환한다.

  • 지연 연산: 스트림은 지연 연산을 통해 최적화를 지원한다. 중간 연산은 실제로 데이터를 처리하지 않고 연산 파이프라인을 구성하며, 최종 연산이 호출될 때에만 실제 연산이 수행된다.

  • 파이프라인: 스트림 연산은 연속적으로 연결할 수 있는 파이프라인을 구성한다. 이로 인해 간단하고 간결한 코드로 데이터를 처리할 수 있다.

  • 병렬 처리: 스트림은 병렬 스트림을 제공하여 멀티코어 CPU를 활용하여 병렬 처리를 수행할 수 있다. 이는 대량의 데이터를 효율적으로 처리하는 데 도움을 준다.

stream 사용 예시

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

int sum = numbers.stream() // 스트림 생성
	.filter(n -> n % 2 == 0) // 짝수만 필터링
    .mapToInt(Integer::inValue) // Integer를 int로 변환
    .sum(); // 합계 계산
    
System.out.println(sum); // 결과 출력: 30

위의 예시에서는 스트림을 생성하고 중간 연산(filter, mapToInt)과 최종 연산(sum)을 연결하여 짝수와 합계를 계산한다. 이렇게 스트림을 사용하면 코드가 간결하고 가독성이 높아지며, 데이터 처리를 효율적으로 할 수 있다.

참고
자바 - 스트림(Stream)

profile
경험은 일어난 무엇이 아니라, 그 일어난 일로 무엇을 하느냐이다.

0개의 댓글