Java 8에서 추가된 Stream은 컬렉션의 요소들을 람다식을 이용해 쉽고 간결하게 처리할 수 있도록 도와주는 기능입니다. 스트림 API는 함수형 프로그래밍 방식을 지원하며, 데이터 소스를 변경하지 않으며 원하는 결과를 얻을 수 있습니다.
Stream API에서 자주 사용되는 함수에는 다음과 같은 것들이 있습니다.
- filter: 조건에 맞는 요소만 추출
- map: 요소들을 특정 값으로 변환
- reduce: 요소들을 하나의 값으로 합치거나 집계
- collect: 스트림을 다시 컬렉션으로 변환
- sorted: 요소들을 정렬
- forEach: 스트림의 각 요소에 대해 작업 수행
- 위 함수 외에도 count, distinct, limit, skip 등 다양한 함수들이 있습니다. 이 함수들을 적절히 활용하면 코드를 간결하게 작성할 수 있으며, 가독성과 유지보수성도 향상시킬 수 있습니다.
- 필터링: 데이터 집합에서 특정 조건을 충족하는 요소만 필터링해야 할 때 Stream의 filter() 함수를 사용할 수 있습니다. 예를 들어, 특정 값을 가진 요소만 선택하거나 조건에 맞는 요소를 걸러낼 수 있습니다.
- 매핑: 데이터 집합에서 요소를 변환해야 할 때 Stream의 map() 함수를 사용할 수 있습니다. 예를 들어, 문자열 배열에서 각 문자열의 길이를 구하거나 정수 배열에서 각 요소를 제곱하는 등의 변환 작업에 유용합니다.
- 정렬: 데이터 집합을 정렬해야 할 때 Stream의 sorted() 함수를 사용할 수 있습니다. 내림차순 정렬을 위해 Comparator.reverseOrder()와 함께 사용하거나 특정 필드에 따라 객체를 정렬할 수 있습니다.
- 집계: 데이터 집합의 요소를 집계해야 할 때 Stream의 reduce() 함수를 사용할 수 있습니다. 요소의 합계, 최댓값 또는 최솟값, 평균 등을 계산하는 데 유용합니다.
- 그 외: Stream은 많은 다른 유용한 함수들을 제공합니다. 예를 들어, 데이터 집합에서 중복을 제거하는 distinct(), 요소를 제한하는 limit(), 요소를 건너뛰는 skip() 등의 함수를 사용할 수 있습니다. Stream 함수는 코드를 간결하게 작성하고 함수형 프로그래밍의 장점을 활용할 수 있기 때문에, 알고리즘 테스트에서는 데이터 처리와 관련된 작업을 수행할 때 주로 사용됩니다. 그러나 Stream 함수를 사용할 때에도 성능과 메모리 사용을 고려해야 합니다. 매우 큰 데이터 세트에 대해서는 Stream 함수가 효율적이지 않을 수 있으므로, 이러한 경우에는 다른 방법을 고려해야 합니다
'개발 꿀팁' 카테고리의 다른 글
git 허브 꾸미기 뱃지 (0) | 2023.06.05 |
---|---|
개발 블로그 어떻게 작성해야는가 (0) | 2023.05.12 |
intellj TEST code tdd 생성 약어 만들기 (0) | 2023.05.08 |
템플릿 엔진 변경할때 마다 재 빌드 안하는법 (0) | 2023.05.08 |
테스트 코드 작성 (assertj, junit5) (0) | 2022.12.13 |