상세 컨텐츠

본문 제목

Stream API 개요

Java

by Wanderer Kim 2023. 5. 5. 19:12

본문

728x90

Java Stream이란?

Java Stream은 자바8에서 추가된 기능으로, collection요소들을 람다식으로 처리할 수 있는 기능을 제공합니다. stream을 사용하면 요소들을 필터링, 매핑, 정렬, 그룹화, 집계 등 다양한 작업을 수행할 수 있습니다.

 

stream은 크게 중간 연산과 최종 연산으로 구성됩니다. 중간 연산은 스트림을 반환하여 연속적으로 연산을 수행할 수 있도록 합니다. 최종 연산은 스트림을 닫아 더 이상 다른 작업을 수행할 수 없게 하며, 스트림에서 최종 결과를 반환합니다.

 

Stream 생성

stream을 생성하기 위해서는 먼저 collection 객체를 생성해야 합니다. 그리고 이 collection 객체에서 stream() 메서드를 호출하여 스트림을 생성합니다.

List<String> list = Arrays.asList("apple", "banana", "orange");

Stream<String> stream = list.stream();

위 코드에서는 Arrays.asList() 메서드를 사용하여 List 객체를 생성하고, 이 객체에서 stream() 메서드를 호출하여 stream 객체를 생성합니다.

 

중간 연산

중간 연산은 스트림을 반환하여 연속적으로 연산을 수행할 수 있도록 합니다. stream에서 제공하는 대표적인 중간 연산 메서드는 다음과 같습니다.

  •  filter : 주어진 조건에 맞는 요소만 걸러냅니다.
  • map : 요소를 다른 요소로 매핑합니다.
  • flatMap : 요소를 stream으로 변환한 다음, 이를 하나의 stream으로 병합합니다.
  • distinct : 중복을 제거합니다.
  • sorted : 요소를 정렬합니다.
  • limit : 요소의 개수를 제한합니다.
  • skip : 처음 n개의 요소를 생략합니다.

 

최종 연산

최종 연산은 스트림을 닫아 더 이상 다른 작업을 수행할 수 없게 하며, 스트림에서 최종 결과를 반환합니다. stream에서 제공하는 대표적인 최종 연산 메서드는 다음과 같습니다.

  • forEach : 각 요소에 대해 주어진 동작을 수행합니다.
  • count : 요소의 개수를 반환합니다.
  • collect : 요소를 수집하여 새로운 컬랙션을 생성합니다.
  • reduce : 초기값과 요소를 이용하여 값을 축적합니다.
  • min : 요소 중 가장 작은 값을 반환합니다.
  • max : 요소 중 가장 큰 값을 반환합니다.
  • findFirst : 첫 번째 요소를 반환합니다.
  • findAny : 임의의 요소를 반환합니다.

예를 들어, 다음 코드는 filter 메서드를 사용하여 문자열의 길이가 5 이하인 요소만 걸러내고, map 메서드를 사용하여 대문자로 변환한 요소를 출력하는 예제입니다.

List<String> list = Arrays.asList("apple", "banana", "orange");

list.stream()
    .filter(s -> s.length() <= 5)
    .map(String::toUpperCase)
    .forEach(System.out::println);
반응형

'Java' 카테고리의 다른 글

Concurrent Random Number  (0) 2024.09.24
[자바 성능 튜닝] 성능 테스트 접근법  (0) 2024.04.07
ThreadLocal  (1) 2024.02.28
JVM 메모리 관리  (0) 2023.05.29
CompletableFuture get()과 join()의 차이점  (0) 2023.05.02

관련글 더보기

댓글 영역