[java] 스트림의 연산 종류와 사용법

자바 8부터 추가된 스트림(Stream)은 함수형 프로그래밍의 개념을 도입하여 컬렉션을 다루는 방식을 간결하고 효과적으로 만들어주는 중요한 개념입니다. 스트림을 이용하면 컬렉션의 요소들을 조작, 변환, 필터링하는 작업을 간단한 코드로 처리할 수 있습니다. 이번 글에서는 스트림의 연산 종류와 사용법에 대해 알아보겠습니다.

스트림 연산의 종류

스트림은 중간 연산과 최종 연산으로 나뉘어지는데, 중간 연산은 다른 스트림을 반환하고 최종 연산은 최종 결과를 반환합니다.

중간 연산

최종 연산

스트림의 사용법

스트림을 사용하기 위해서는 먼저 대상이 되는 컬렉션을 스트림으로 변환해야합니다. 컬렉션 객체에서 stream() 메서드를 호출하면 스트림이 생성됩니다.

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = numbers.stream();

중간 연산과 최종 연산을 여러 개 연결하여 사용할 수 있습니다. 예를 들어, 다음 코드는 1부터 10까지의 숫자 중에서 짝수만 선택하여 합을 구하는 코드입니다.

int sum = numbers.stream()
                .filter(num -> num % 2 == 0)
                .mapToInt(num -> num)
                .sum();

위의 코드에서 filter() 메서드로 짝수를 선택하고, mapToInt() 메서드로 IntegerIntStream으로 변환한 다음 sum() 메서드를 통해 합을 계산합니다.

스트림은 한 번 사용하면 재사용할 수 없으며, 한 번 사용 후에는 연산을 추가할 수 없습니다. 따라서 사용할 때에는 연산의 순서와 주의해야 합니다.

결론

이번 글에서는 스트림의 연산 종류와 사용법에 대해 알아보았습니다. 스트림을 이용하면 컬렉션을 다루는 작업을 더욱 간결하고 효율적으로 처리할 수 있습니다. 스트림의 다양한 연산을 적절하게 활용하여 자신의 코드를 개선해보세요.

참고 자료