Kotlin Collection 공식 문서를 정리 한 글입니다. Collection의 Aggregate operations operator에 대해 알아봅니다.
아래에 적힌 Kotlin 코드들은 Github repo 에서 확인 하실 수 있습니다.
Aggregate operations operator
- collection의 item들에 대한 하나의 값을 도출 해내는 operator
- 다른 언어들과 비슷하게 동작 함
1 |
|
- Comparator를 활용하여 max / min 값 정할 수 있음
1 |
|
- Transform 한다음 sum 가능
1 |
|
Fold and reduce
- 연산의 결과 값을 그 다음 인자로써 활용 할 수 있는 operator
fold()
operator는 initial value 값을 받아 첫번째 인자로써 활용하고,reduce()
operator는 초기 값 없이 진행
1 |
|
foldRight()
/reduceRight()
는,fold()
/reduce()
가 왼쪽 에서 부터 시작하는것과는 반대로 오른쪽 부터 값의 축적이 시작된다.
1 |
|
fold()
/reduce()
연산 도중에, index를 parameter로 활용 하고 싶을 때 사용
1 |
|
reduce()
는 emptyCollection에서UnsupportedOperationException
을 발생 시키는데, 이를 방지하고자*OrNull()
를 활용 (fold()
는 emptyCollection에서도 exception 발생 x )- ex_
reduceOrNull()
/reduceRightOrNull()
…
- ex_
runningReduceSum()
/runningFoldSum()
함수를 활용하여, operator 중간 중간에 계산되는 sum에 대한 list를 생성 할 수 있음
1 |
|