[java] 스트림 API를 이용한 데이터 수집 방법

스트림 API는 자바 8부터 도입된 기능으로, 데이터를 효율적으로 처리하고 다룰 수 있는 강력한 도구입니다. 스트림 API를 사용하면 데이터를 한 줄로 간결하게 처리할 수 있으며, 병렬 처리도 쉽게 구현할 수 있습니다.

이번 글에서는 스트림 API를 이용하여 데이터를 수집하는 방법에 대해 알아보겠습니다.

1. 기본적인 스트림 생성 및 데이터 필터링

먼저, 기본적인 스트림 생성부터 시작해보겠습니다. 자바 컬렉션에서 스트림을 생성할 때는 stream() 메서드를 사용합니다.

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

위 코드에서는 numbers 리스트로부터 Stream<Integer> 타입의 스트림을 생성하고 있습니다.

스트림을 생성했다면, 이제 데이터를 필터링하여 원하는 결과를 얻을 수 있습니다. filter() 메서드를 사용하여 원하는 조건에 해당하는 데이터만을 걸러낼 수 있습니다.

Stream<Integer> filteredStream = numberStream.filter(number -> number % 2 == 0);

위 코드에서는 filteredStream을 생성하고 있으며, 이는 numberStream에서 짝수만을 걸러낸 스트림입니다.

2. 데이터 변환 및 정렬

스트림을 사용하면 데이터를 변환하거나 정렬하는 작업도 간단하게 수행할 수 있습니다. map() 메서드를 사용하여 데이터를 변환할 수 있습니다.

Stream<String> stringStream = numberStream.map(number -> String.valueOf(number));

위 코드에서는 numberStream의 각 요소를 문자열로 변환하여 stringStream을 생성하고 있습니다. 이렇게 변환된 데이터는 다양한 작업에 활용할 수 있습니다.

또한, 스트림의 데이터를 정렬하기 위해서는 sorted() 메서드를 사용할 수 있습니다.

Stream<Integer> sortedStream = numberStream.sorted();

위 코드에서는 numberStream의 데이터를 오름차순으로 정렬하여 sortedStream을 생성하고 있습니다.

3. 데이터 수집

스트림 API를 이용하여 데이터를 수집하는 방법은 다양합니다. collect() 메서드를 사용하여 원하는 형태로 데이터를 수집할 수 있습니다.

List<String> collectedList = stringStream.collect(Collectors.toList());

위 코드에서는 stringStream의 모든 요소를 리스트로 수집하고 있습니다. Collectors.toList() 메서드는 스트림의 모든 요소를 리스트로 변환해주는 역할을 합니다.

collect() 메서드를 사용하여 원하는 형태로 데이터를 수집하는 방법은 다양하므로, 필요에 따라 다양한 메서드를 활용해보세요.

결론

이번 글에서는 스트림 API를 이용하여 데이터를 수집하는 방법에 대해 알아보았습니다. 스트림 API를 사용하면 복잡한 데이터 처리 작업을 간결하게 표현할 수 있으며, 병렬 처리 또한 손쉽게 구현할 수 있습니다. 다양한 기능을 활용하여 데이터를 효율적으로 처리하는 방법을 익혀보세요.