[java] 자바 스트림 API

자바 8부터 도입된 스트림(Stream) API는 컬렉션을 처리하는 기능을 제공하는 람다식과 함수형 인터페이스 기반의 API입니다. 스트림 API를 사용하면 간단하면서도 강력한 컬렉션 처리 기능을 구현할 수 있습니다.

스트림이란?

스트림은 데이터를 추상화하여 다양한 크기의 데이터를 처리할 수 있는 기능을 제공합니다. 스트림은 데이터 소스로부터 데이터를 읽기만 할 뿐 변경하지 않으며, 데이터를 소비하는 용도로만 사용됩니다. 컬렉션과는 달리 스트림은 한 번만 사용할 수 있으며, 사용한 스트림은 자동으로 소멸됩니다.

스트림 API의 주요 기능

스트림 API는 다양한 기능을 제공합니다. 아래는 주요 기능에 대한 간단한 설명입니다.

스트림 API 예제 코드

다음은 스트림 API의 간단한 예제 코드입니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape", "kiwi");

        // 필터링
        List<String> filteredFruits = fruits.stream()
                .filter(fruit -> fruit.startsWith("a"))
                .collect(Collectors.toList());

        // 매핑
        List<Integer> fruitLengths = fruits.stream()
                .map(String::length)
                .collect(Collectors.toList());

        // 정렬
        List<String> sortedFruits = fruits.stream()
                .sorted()
                .collect(Collectors.toList());

        // 집계
        long fruitCount = fruits.stream()
                .count();

        // 출력
        System.out.println(filteredFruits);
        System.out.println(fruitLengths);
        System.out.println(sortedFruits);
        System.out.println(fruitCount);
    }
}

위 예제 코드에서는 List에 저장된 과일 데이터를 스트림으로 변환하여 다양한 처리를 수행합니다. 필터링, 매핑, 정렬, 집계 등 다양한 스트림 API 메서드를 사용하여 원하는 결과를 얻을 수 있습니다.

스트림 API 참고 문서

Java 스트림 API는 다양한 메서드를 제공하므로 자세한 사용법과 예제는 공식 문서를 참고하시기 바랍니다.